Spring Data动态查询

时间:2014-04-11 16:02:24

标签: java spring spring-data dynamicquery

我试图使用spring数据设置动态查询,基本上我有一堆具有一系列特征的数组,我需要根据这些特征组装查询,几乎就像" WHERE特征= A AND特征= B AND特征= C"但特征量可能会有所不同。

我注意到我可以使用@Query注释,但是可以将@Query的结果分页吗?

还有其他方法可以实现这个目标吗?

Page<Recipe> findDistinctByNameContainingAndOrganizationAndCharacteristicsInOrIngredientsContainingAndOrganizationAndCharacteristicsInOrDescriptionContainingAndOrganizationAndCharacteristicsInAllIgnoreCase(
        String name, Organization organization1, List<Characteristic> characteristic1,
        String ingredients, Organization organization2, List<Characteristic> characteristic2,
        String description, Organization organization3, List<Characteristic> characteristic3,
        Pageable pageable);

2 个答案:

答案 0 :(得分:9)

是。 @Query支持可分页..是的,还有其他方法可以实现此目的。

您可以查看使用条件构建查询,这样可以动态地在条件中添加AND / OR。我实际上使用querydsl来促进我的开发。

在这篇文章中,你可以找到两者的一个很好的解释:http://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/

尽管开始时看起来似乎更复杂,但使用此功能会使您的代码更加符合日益增加的复杂性

答案 1 :(得分:0)

使用Spring Data JPA Querydsl。 Read it here