どのような利点がget
ありcreateQuery
ますか?
HQLを解析する必要がないため、パフォーマンスがわずかに向上する可能性があることがわかりますが、get over createQueryを使用することのその他の大きな利点はありますか?
まず、入力がはるかに速く、読みやすく、ID でエンティティを取得するという意図が明確に表現されています。また、HQL クエリでタイプミスが発生する可能性がありますが、エラーを起こすことは基本的に不可能です。
パフォーマンスに関する主な利点は、エンティティがまだセッション キャッシュにない場合にのみ select ステートメントを実行することです。毎回 HQL クエリが実行されます。また、第 2 レベルのキャッシュがあるget()
場合、エンティティが既に第 2 レベルのキャッシュにある場合、クエリを完全に実行することを回避します。
get()
セッションを直接使用してオブジェクトを取得します。
createQuery()
HQLを使用