问题标签 [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.

0 投票
3 回答
329 浏览

c# - C#如何使用谓词和动作委托构建逻辑工作流?

是否有一种设计模式可以应用于我可以构建复杂的工作流程而无需编写多个条件和嵌套条件语句 - 我认为答案可能在于采用规范模式之类的东西,但不确定它是如何在 C# 中组合在一起的?

0 投票
1 回答
11756 浏览

java - 使用 JpaSpecificationExecutor 时使用 QueryHint

我使用弹簧数据和JpaSpecificationExecutor::findAll方法来获取我的模型。调用此方法时如何使用查询提示?
上面的源代码工作正常,但我无法为我的 JPA 提供程序(在我的例子中为 EclipseLink)设置 QueryHint。

我使用 spring-data 的查询提示的方式是上面的,

我也发现了这个尚未解决的问题。

0 投票
1 回答
423 浏览

reflection - 反射问题:NoSuchMethodException...规范.SearchCriteria, [Ljava.lang.String;)

好吧,NoSuchMethodException 通常是不言自明的。不幸的是,就我而言,我什至无法猜测为什么会出现这样的错误。

我正在处理其他开发人员的代码,我必须维护它。它的设计考虑了规范模式。为了使搜索引擎非常通用,基本上,从客户端传递到休息服务的任何字符串都会被拆分,以构建搜索条件。

执行“clazzSpec.getDeclaredConstructor(SearchCriteria.class, String[].class).newInstance(param);”时 我明白了

看下面的图片,我看不到错过了什么

搜索条件:

东西规范

在此处输入图像描述

0 投票
0 回答
325 浏览

hibernate - 查询缓存不适用于规范?

我的项目是 Spring-boot + Spring-data-jpa + hibernate + ehcache。二级缓存适用于以下内容:

  1. 扩展 JpaRepository

2a。它与我的 HQL 查询一起使用 query.setHimt("org.hibernate.cacheable", true);

它不起作用,如果

  1. 我用其他类包装结果,例如 Page<>

2b。如果我使用规范和标准来查询而不是 HQL

我的设置对于 2a 和 2b 都是一样的。假设我的实体类是 City。我像这样使用规范:

结果集是正确的,对象列表与 HQL 相同。但是如果我在循环中调用这个方法,它每次都会从数据库中检索。

我不明白,HQL 和规范都会生成 TypedQuery<>。我可以使用 Hibernate 和 ehcache 缓存规范查询吗?

0 投票
1 回答
1185 浏览

jpa - JPQL 聚合函数与规范

我需要使用 Specifications 使用聚合函数进行 JPQL 查询。我想要类似的东西

我正在尝试使用 Specifications 对象而不是我的 where 子句。有没有办法做这样的事情?

谢谢!

0 投票
1 回答
2361 浏览

c# - 从 lambda 表达式中排除 null 或空字符串值

在我的GetAll函数应用程序中,我有一个名为 ( CustomerModel) 的参数。我使用它对查询进行一些过滤,并使用规范模式来避免使用if-else

例如,规范对象之一 ( CustomerNameSpecification) :

更新

并在规范模式下运行:

这些链在最后生成一个 lambda 表达式,存储库使用它来过滤查询。

当 的每个字段CustomerModel都有值时,此解决方案可以正常工作,但即使一个属性具有空值或空值,它也不起作用。

如何解决此问题并排除我有 null 或空字符串值的 lambda 表达式?

0 投票
1 回答
870 浏览

java - Spring Data JPA - 带有规范的查询(加入和输入)

我已经组装了以下类规范:

几乎所有的谓词都在工作,除了插入类别标准的谓词。它不起作用,我很难创建它。

以它返回以下错误的方式:

如果有人可以帮我制作这个吗?

下面是 ItemSeller 类的详细信息:

如您所见,它有一个名为 id 的字段,它是由Vendedor vendedorand组成的键Produto produto

在 Produto 类中,我有一个 List Categorias。对于一个产品可以属于几个类别。

反过来,Class 类别具有id.

我想在规范中添加的是一种获取在其类别列表中具有某些类别的所有 ItemVendedor 的方法,这些类别我在另一个列表列表类别中作为参数引用。

0 投票
1 回答
138 浏览

c# - 为内存集合实现规范模式时塑造数据的优雅方式

是否有任何健壮、优雅和/或标准的方式来实现内存中集合(IEnumerable<T>而不是IQueryable<T>)的规范模式,包括塑造/投影结果?

使用Func<T, bool>for 标准显然只涵盖Where子句/方法,而不是Select.

到目前为止,我想出的想法是我可以在我的规范中包含另一个委托(不是双关语)专门涵盖该Select操作。实现可能如下所示。正如您在底部看到的那样,存储库只是简单地执行Whereand Select,并传入规范的委托成员。

这个解决方案似乎工作得很好,但我在很多场合发现我正在解决的问题存在现有的更好的解决方案,所以问这个问题似乎是合理的。

(我计划使用规范模式的原因是,我的应用程序可能需要从复杂对象的内存集合中以各种形状显示大量结果,并且将查询内容保持在一个单一的,易于查找/管理的地方。但请随意提出完全不同的建议。)

0 投票
0 回答
146 浏览

language-agnostic - 规范模式应该如何处理空候选?

我只是想知道是否有推荐的策略来处理null规范模式中的候选人。在我看来,有两种可能的策略:

  • 如果候选人是 ,则抛出异常null
  • 返回不是有效候选值false的情况。null

示例是用 Kotlin 编写的,但这也很容易适用于 C# 和 Java。

示例 - 抛出异常

示例 - 返回 false

我不确定这是否属于自以为是的问题(如果是这种情况,请道歉),但我只是想知道哪种方法更适合符合规范模式?

参考

0 投票
3 回答
255 浏览

python - 如何使用 python 在连续行中找到一组数字?

我正在学习 python,但我的脚本还存在一些问题。

我有一个类似的文件:

我想在连续的行中打印成对的数字 2-1,只需在第 2 列中找到它们,然后在第 1 列和第 2 列中打印结果。结果将与此类似:

我正在尝试用 python 来做,因为我的文件有 4,000,000 个数据。所以,这是我的脚本:

结果是:

我必须在我的脚本中更改什么以适应我想要的结果?,你能指导我吗?非常感谢。