1. ホーム

[解決済み】JPAとHibernate - Criteria vs. JPQL or HQL

2022-03-29 23:17:55

質問

を使用することの長所と短所を教えてください。 基準 または HQL ? クライテリア API は Hibernate でクエリを表現するための素晴らしいオブジェクト指向の方法ですが、クライテリアクエリは HQL よりも理解/構築するのが難しい場合があります。

あなたはどんな時にクライテリアを使い、どんな時にHQLを使いますか?どのようなユースケースで何を好むのでしょうか?それとも単に好みの問題でしょうか?

どのように解決するのですか?

私は動的なクエリにはクライテリアクエリを好んで使用します。例えば、あるパラメータに応じて動的に順序を追加したり、ある部分(例えば制限事項)を除外したりするのがずっと簡単です。

一方、静的で複雑なクエリにはHQLを使っています。HQLの方が理解しやすく、読みやすいからです。また、HQLはより強力で、たとえばさまざまな結合タイプに対応しています。