是否可以使用内部查询执行hibernate批量删除?例如:
DELETE Person person WHERE person.id IN (SELECT id FROM...)
答案 0 :(得分:2)
是。有可能的。见以下几点。
Hibernate提供了通过Hibernate查询语言(HQL)执行的批量SQL样式DML语句执行的方法。
UPDATE
和DELETE
语句的伪语法是:
( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions)
- 在from子句中,FROM关键字是可选的
- 在from子句中只能有一个实体。但是,它可能是别名。如果实体名称是别名,则必须使用该别名限定任何属性引用。如果实体名称没有别名,那么任何属性引用都是合法的。
- 可以在批量HQL查询中指定隐式或显式的连接。子查询可以在where子句中使用,子子查询本身可以包含连接。
- where子句也是可选的。
醇>