Hibernate 使用内部查询的HQL批量删除

Hibernate 使用内部查询的HQL批量删除,hibernate,hql,Hibernate,Hql,是否可以使用内部查询执行hibernate批量删除?例如: DELETE Person person WHERE person.id IN (SELECT id FROM...) 对。这是可能的。见以下几点 Hibernate提供了通过Hibernate查询语言(HQL)执行大容量SQL样式DML语句的方法 UPDATE和DELETE语句的伪语法为: ( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions) 需要注意的几点:

是否可以使用内部查询执行hibernate批量删除?例如:

DELETE Person person WHERE person.id IN (SELECT id FROM...)

对。这是可能的。见以下几点

Hibernate提供了通过Hibernate查询语言(HQL)执行大容量SQL样式DML语句的方法

UPDATE
DELETE
语句的伪语法为:

( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions)
需要注意的几点:
  • 在from子句中,from关键字是可选的
  • from子句中只能有一个名为的实体。但是,它可以是别名。如果实体名称具有别名,则必须使用该别名限定任何属性引用。如果实体名称没有别名,则限定任何属性引用都是非法的
  • 在批量HQL查询中不能指定隐式或显式联接。子查询可以在where子句中使用,其中子查询本身可能包含联接
  • where子句也是可选的
  • 工具书类

    有人举个例子吗?很难辨别where是如图所示在括号中,还是在带有select的括号之前,这看起来更像sql。