📖

SpringのDateを使用したJPAクエリの作成をする

2021/06/16に公開

Dateを使用したクエリの作成方法

調べたことをまとめてみる。間違っている所もかなりあると思いますがよろしくお願い申し上げます。
違っていたらコメント欄に書いていただけると嬉しいです。よろしくお願い申し上げます。

結論

作成方法は複数ある

方法

  1. Specifiacation
  2. QueryDSL

記述方法の種類

  1. NativeQuery(@queryアノテーションにSQLを直書き)
  2. JPQL
  3. 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(いつもありがとうございます)

https://www.youtube.com/embed/Zcs7tnK_7ec
https://www.youtube.com/embed/Zyqpo8gxSO0?start=2376

GitHubで編集を提案

Discussion