按示例查询Spring数据 - 在子句中?

时间:2018-01-30 18:21:11

标签: java spring spring-data spring-data-jpa query-by-example

根据Spring Docs,我只能为QBE编写精确匹配。 我只需要精确匹配,但需要一组值(查询的IN子句)。

e.g。

Person p = new Person();
p.setId(); // need to match among set of ids.
Example.of(p);

QBE是以某种方式实现的,还是我完全走错了路?

类似的东西:

Page<S> findByIdIn(List<Integer> ids, Example<S> e, Pageable p)

两全其美?

我真正需要的是,基于多个字段的动态查询(可能的组合,比如id(1,2,4),status = open,appointmentDate&lt; today) 以及分页和排序。 规范是脱离本机查询的唯一方法吗?

1 个答案:

答案 0 :(得分:4)

  

我只需要精确匹配,但需要一组值(查询的IN子句)。

所以你需要的不是精确匹配。您不可能在Person的ID属性中存储一组ID。 QBE显然不适合这项工作。

您可以直接使用规范,Criteria API,QueryDSL,动态编写的JPQL查询,或其他任何解决方案,但不能使用QBE。