私が見た唯一のCriteriaQueryの例は、SELECTクエリ用です。JPA2またはHibernateAPIを使用して、タイプセーフなDELETEクエリを作成する方法はありますか?
質問する
6064 次
4 に答える
7
それは不可能だと思います。
http://blogs.oracle.com/ldemichiel/entry/java_persistence_2_0_public1から引用:
Criteria APIは現在、更新および削除操作をサポートしていません
于 2011-05-22T22:01:31.997 に答える
7
JPA2.1バージョンで利用可能になります。
于 2012-10-22T01:24:09.340 に答える
5
直接は不可能ですが、QuerydslJPA拡張機能を介してタイプセーフなDELETEおよびUPDATEクエリを使用できます。Querydslは内部でJPQLを使用しますが、クエリ構築のためのタイプセーフな流暢なインターフェイスを提供します。
私はQuerydslのメンテナーなので、この答えには偏りがあります。
于 2011-07-07T06:59:25.860 に答える
-6
Criteriaで実行できるかどうかはわかりませんが、削除や更新などの一括操作でHQLを作成することは可能です。「Hibernateを使用した永続性」(535ページ)の次の例を確認してください。
Query q = session.createQuery(
"delete CreditCard c where c.stolenOn is not null"
);
int updatedCreditCards = q.executeUpdate();
よろしくお願いします!
于 2011-04-06T09:07:17.697 に答える