0

JPA2.0 (Hibernate 4 経由) を使用して、EntityManager.find(java.lang.Class entityClass, java.lang.Object primaryKey) を使用して、クエリ基準が主キーであるレコードをデータベースにクエリできます。しかし、クエリ基準が主キーでない場合 (たとえば、都市の値が「london」であるすべてのレコードを選択する)、TypedQuery を作成して SQL ステートメントを明示的に指定する必要がありますか? 採用すべきベストプラクティスはありますか?

4

1 に答える 1

0

JPA Criteria APIは、(jpql または sql を使用して) 独自の動的クエリを作成する場合には得られないレベルのコンパイル時の安全性を提供します。特に、多くの条件 (オプション フィールド、条件付きサブクエリなど) が忍び込み始めると、間違いを犯しやすくなります。

Criteria API は (特に単純なクエリの場合) 記述するのがより複雑になる可能性があり、Criteria API を真に動的で使いやすい言語にするためには、Criteria API の周りにいくつかの配管コードを作成する必要があります。それは本当に箱から出してそれを提供しません。

Criteria API を使用するのが好きな人もいれば、名前付きクエリ / JPQL を好む人もいます。

于 2013-02-04T19:57:35.077 に答える