📖
SpringのDateを使用したJPAクエリの作成をする
Dateを使用したクエリの作成方法
調べたことをまとめてみる。間違っている所もかなりあると思いますがよろしくお願い申し上げます。
違っていたらコメント欄に書いていただけると嬉しいです。よろしくお願い申し上げます。
結論
作成方法は複数ある
方法
- Specifiacation
- QueryDSL
記述方法の種類
- NativeQuery(
@query
アノテーションにSQLを直書き) - JPQL
- CriteriaAPI
CriteriaAPIとSpecifiationはどちらを選ぶべきか?
結論:Specifiationを使うべき
SpecifiationはCriteriaAPIのラッパー
- CriteriaAPIは作成した Predicateを再利用できない
- Specifiationは再利用が可能
SpecifiationとQueryDSLのどちらを選ぶべきか?
結論:好みによる
JpaSecificationExecutorを使うと、標準のJPA CriteriaとMetamodel APIを中継する。
Metamodel API はマッピングに基づいてメタモデルを作成し、コンパイル時にタイプセーフにするために使用される。
一方、QueryDSLはJPAに限定されないフレームワーク。
JPAに限らず、SQL、Collections、MongoDB、Luceneなどでも利用が可能
参考URL(いつもありがとうございます)
-
公式ドキュメント
-
他
-
参考リポジトリ
-
youtube
https://www.youtube.com/embed/Zcs7tnK_7ec
https://www.youtube.com/embed/Zyqpo8gxSO0?start=2376
Discussion