実行時に動的クエリを作成する必要がある場所です。
アプリケーションコードでは、入力DTOの上記の各プロパティが空であるかどうかに基づいて述語を構築するロジックが必要です。
これを実行する1つの方法は、QueryDSLを使用することです。 QueryDSLを使用するには、関連する依存関係をpom/gradleファイルに含める必要があります。その後、リポジトリはQueryDslPredicateExecutorインターフェイスを拡張する必要があります。これは、2つの追加の汎用ファインダメソッドを提供します。心に留めておくべき
T findAll(Predicate) or Page<T> findAll(Predicate, Pageable)
ことの一つは、これを行うために必要ではないところ上記2つの方法が適切であることである、ここで参加
あなたの要件のいずれか1つのテーブルのクエリのようですので、ファインダー法のうちのどれでも十分である。
他のテーブルと結合する必要があり、JOIN(INNER JOINとLEFT OUTER JOINとCROSS JOINなど)の処理方法をきめ細かく制御する必要がある場合は、リポジトリで使用できるカスタムリポジトリを作成することを検討する必要があります延長する。 次に、独自のcustomImplを用意して、リポジトリからアクセスできるようにします。
出典
2016-12-14 20:48:44
SGB
カスタム・リポジトリ・メソッドを使用し、JPA criteria APIを使用して問合せを動的に生成します。それがそれのためのものです。 –
ありがとう、私はそれを見ます。 – Artegon