11

春のデータを使用して動的クエリを設定しようとしています。基本的に、一連の特性を持つ配列があり、それらの特性に基づいてクエリを組み立てる必要があります。ほとんど「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);
4

2 に答える 2

9

はい。@Queryページングをサポートしています..はい、これを達成する別の方法があります。

AND / OR where 条件を動的に追加できる基準を使用してクエリを構築することを検討できます。実際、開発を容易にするために querydsl を使用しています。

この投稿では、両方の良い説明を見つけることができます: http://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/

最初はもっと複雑に見えるかもしれませんが、この機能を使用すると、複雑さが増してもコードの一貫性が保たれます。

于 2014-04-11T17:27:27.033 に答える