我见过的唯一 CriteriaQuery 示例是针对 SELECT 查询的。有没有办法使用 JPA 2 或 Hibernate API 构建类型安全的 DELETE 查询?
问问题
6064 次
4 回答
7
I don't think it's possible.
Quoted from http://blogs.oracle.com/ldemichiel/entry/java_persistence_2_0_public1 :
The Criteria API does not currently support update and delete operations
于 2011-05-22T22:01:31.997 回答
7
它将在JPA 2.1版本中可用。
于 2012-10-22T01:24:09.340 回答
5
这不是直接可能的,但您可以通过Querydsl JPA 扩展使用类型安全的 DELETE 和 UPDATE 查询。Querydsl 在内部使用 JPQL,但为查询构造提供了一个类型安全的流畅接口。
我是Querydsl的维护者,所以这个答案是有偏见的。
于 2011-07-07T06:59:25.860 回答
-6
不确定是否可以使用 Criteria 执行此操作,但可以使用删除或更新等批量操作创建 HQL。从“Persistence with 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 回答