1

多くのクエリ間でわずかに異なるだけの複雑な where 句がある場合、SQL では、ほとんどの where 句に基づいてビューを作成し、ビューを複数回クエリします。パフォーマンスと保守性の両方。

jpql にはこれに相当するものはありません。

私はjpql仕様ですか?何か足りない?

乾杯、フィル

4

2 に答える 2

1

直接的な答えではありませんが、Entity を SQL ビューにマップしてみませんか? 場合によっては、特にデータが読み取り専用の場合、SQL ビューが最も簡単で効果的なソリューションになります。それらを乱用しないでください。

于 2010-05-18T14:43:10.953 に答える
0

JPA2 では、EntityManager と CriteriaQuery の組み合わせが非常に強力です。

http://java.sun.com/javaee/6/docs/api/javax/persistence/criteria/CriteriaQuery.html

http://java.sun.com/javaee/6/docs/api/javax/persistence/EntityManager.html#createQuery(javax.persistence.criteria.CriteriaQuery%29

CriteriaBuilder を使用して基本的な CriteriaQuery (ビューのようなもの) を定義してから、entitymanager を使用して、criteriaquery に基づくクエリを作成します。基準クエリはオブジェクトであるため、Java 側で再利用できます。

おそらくプロバイダーは、クライテリアクエリに対するキャッシングも実装していますが、それについては知りません。

于 2010-05-18T14:19:51.300 に答える