Spring JPAクエリの実装に関するアドバイスが必要です。入力の長さのため、私のクエリは複雑です。
入力として:
これは、次のような標準のPagingAndSortingRepositoryを使用することで解決できることを知っています。
Page<A> findAllByParam1AndParam2AndParam3Between...(@Nullable String param1, @Nullable String param2, @Nullable Integer param3,...)
しかし、この解決策が私の入力である期間を見ると不明瞭に見え、あまりにも多くのパラメーターを持つその方法は良い解決策ではないと思います。また、例としてfindAll
について考えていましたが、これは、between条件ではなく、同等性をサポートしています。
他のオプションはありますか?
唯一の方法は、CriteriaBuilder?を使用してカスタムクエリを作成することです。
これを行うには、以下のオプションがあります。 1)hqlを使用します。すべてのテーブルをjpaエンティティとしてマップすることが必須であるためです。2)ネイティブクエリを使用することの欠点は、アプリケーションの移植性に影響を与えることですが、アプリケーションが正しく動作しない場合他のデータベースに移行する場合は、これを使用できます3)基準ビルダーを使用することです
Edit-> SQLとJPQLの両方に@Queryを使用して実行できることがわかりました。
詳細については、以下のリンクに従ってください
https://www.baeldung.com/spring-data-jpa-query
一部の春の開発者認定書でのQueryの使用。
それが役に立てば幸い