问题标签 [specification-pattern]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C#如何使用谓词和动作委托构建逻辑工作流?
是否有一种设计模式可以应用于我可以构建复杂的工作流程而无需编写多个条件和嵌套条件语句 - 我认为答案可能在于采用规范模式之类的东西,但不确定它是如何在 C# 中组合在一起的?
java - 使用 JpaSpecificationExecutor 时使用 QueryHint
我使用弹簧数据和JpaSpecificationExecutor::findAll
方法来获取我的模型。调用此方法时如何使用查询提示?
上面的源代码工作正常,但我无法为我的 JPA 提供程序(在我的例子中为 EclipseLink)设置 QueryHint。
我使用 spring-data 的查询提示的方式是上面的,
我也发现了这个尚未解决的问题。
hibernate - 查询缓存不适用于规范?
我的项目是 Spring-boot + Spring-data-jpa + hibernate + ehcache。二级缓存适用于以下内容:
- 扩展 JpaRepository
2a。它与我的 HQL 查询一起使用 query.setHimt("org.hibernate.cacheable", true);
它不起作用,如果
- 我用其他类包装结果,例如 Page<>
2b。如果我使用规范和标准来查询而不是 HQL
我的设置对于 2a 和 2b 都是一样的。假设我的实体类是 City。我像这样使用规范:
结果集是正确的,对象列表与 HQL 相同。但是如果我在循环中调用这个方法,它每次都会从数据库中检索。
我不明白,HQL 和规范都会生成 TypedQuery<>。我可以使用 Hibernate 和 ehcache 缓存规范查询吗?
jpa - JPQL 聚合函数与规范
我需要使用 Specifications 使用聚合函数进行 JPQL 查询。我想要类似的东西
我正在尝试使用 Specifications 对象而不是我的 where 子句。有没有办法做这样的事情?
谢谢!
c# - 从 lambda 表达式中排除 null 或空字符串值
在我的GetAll
函数应用程序中,我有一个名为 ( CustomerModel
) 的参数。我使用它对查询进行一些过滤,并使用规范模式来避免使用if-else
:
例如,规范对象之一 ( CustomerNameSpecification
) :
更新
并在规范模式下运行:
这些链在最后生成一个 lambda 表达式,存储库使用它来过滤查询。
当 的每个字段CustomerModel
都有值时,此解决方案可以正常工作,但即使一个属性具有空值或空值,它也不起作用。
如何解决此问题并排除我有 null 或空字符串值的 lambda 表达式?
java - Spring Data JPA - 带有规范的查询(加入和输入)
我已经组装了以下类规范:
几乎所有的谓词都在工作,除了插入类别标准的谓词。它不起作用,我很难创建它。
以它返回以下错误的方式:
如果有人可以帮我制作这个吗?
下面是 ItemSeller 类的详细信息:
如您所见,它有一个名为 id 的字段,它是由Vendedor vendedor
and组成的键Produto produto
。
在 Produto 类中,我有一个 List Categorias。对于一个产品可以属于几个类别。
反过来,Class 类别具有id.
我想在规范中添加的是一种获取在其类别列表中具有某些类别的所有 ItemVendedor 的方法,这些类别我在另一个列表列表类别中作为参数引用。
c# - 为内存集合实现规范模式时塑造数据的优雅方式
是否有任何健壮、优雅和/或标准的方式来实现内存中集合(IEnumerable<T>
而不是IQueryable<T>
)的规范模式,包括塑造/投影结果?
使用Func<T, bool>
for 标准显然只涵盖Where
子句/方法,而不是Select
.
到目前为止,我想出的想法是我可以在我的规范中包含另一个委托(不是双关语)专门涵盖该Select
操作。实现可能如下所示。正如您在底部看到的那样,存储库只是简单地执行Where
and Select
,并传入规范的委托成员。
这个解决方案似乎工作得很好,但我在很多场合发现我正在解决的问题存在现有的更好的解决方案,所以问这个问题似乎是合理的。
(我计划使用规范模式的原因是,我的应用程序可能需要从复杂对象的内存集合中以各种形状显示大量结果,并且将查询内容保持在一个单一的,易于查找/管理的地方。但请随意提出完全不同的建议。)
language-agnostic - 规范模式应该如何处理空候选?
我只是想知道是否有推荐的策略来处理null
规范模式中的候选人。在我看来,有两种可能的策略:
- 如果候选人是 ,则抛出异常
null
。 - 返回不是有效候选值
false
的情况。null
示例是用 Kotlin 编写的,但这也很容易适用于 C# 和 Java。
示例 - 抛出异常
示例 - 返回 false
我不确定这是否属于自以为是的问题(如果是这种情况,请道歉),但我只是想知道哪种方法更适合符合规范模式?
参考
python - 如何使用 python 在连续行中找到一组数字?
我正在学习 python,但我的脚本还存在一些问题。
我有一个类似的文件:
我想在连续的行中打印成对的数字 2-1,只需在第 2 列中找到它们,然后在第 1 列和第 2 列中打印结果。结果将与此类似:
我正在尝试用 python 来做,因为我的文件有 4,000,000 个数据。所以,这是我的脚本:
结果是:
我必须在我的脚本中更改什么以适应我想要的结果?,你能指导我吗?非常感谢。