我试图使用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);
答案 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