Spring Data如何在count查询中重用规范?

时间:2018-09-08 15:06:42

标签: java spring-boot spring-data-jpa spring-data

我将Spring Data用于我的存储库,并且希望能够结合简单的规范来构建复杂的查询。通过使用Specifications类并应用andor帮助方法,然后调用接受{{1 }}。

主要问题是,我想重用现有规范,而不是直接获取结果列表,而是对规范应用findAll聚合函数或JpaSpecificationExecutor<T>聚合函数并获取规范的结果聚合函数作为Specification<T>结果或count

更具体地说,我在这里放一个简单的例子:

groupBy

在此示例中,我的Long类中有一个名为List<Tuple>的方法,打算在多个地方重用。我想在三种情况下使用此规范:

  1. 计算名为“约翰”的人数
  2. 使用public Specification<Person> getByNameSpec(String name) { return (root, query, builder) -> { return builder.equal(root.get(Person_.firstName), name); }; } 之类的其他字段来命名“约翰”的人员和每个组的计数
  3. 仅选择一个或两个名为“约翰”的人的字段

请注意,如果可能的话,我打算以这种方式大量使用规范。如果不可能,我应该如何创建一些基本条件并在我的代码中重复使用它们?

0 个答案:

没有答案