Java Hibernate HQL 无法指定目标 table

Java Hibernate HQL can't specify target table

我正在阅读来自用户@JB Nizet

的Post

Hibernate Exception on MySQL Cross Join Query

稍后我尝试了自己的代码

我有一个这样的HQL。

update Student set newField='newField',anotherFieldsToBeUpdated where .... 
and id in
(select s.id from Student s where s.school=:school)
-->[Student->School]many to one relationship....

但仍然抛出了臭名昭著的

Caused by: java.sql.SQLException: You can't specify target table 'Student' for update in FROM clause

我想知道是否仍然存在不使用 using another different select 或使用 a temporal table 的解决方案。

当您只访问同一个 table 时,您可以将您的限制组合在一起:

update Student set newField = :newField where ... and school = :school