使用set子句中的subselect进行Hibernate HQL更新

我正在尝试使用set子句中的subselect在hibernate HQL中进行更新,如:
update UserObject set code = (select n.code from SomeUserObject n where n.id = 1000)
它不工作,不支持? 谢谢 你做     
已邀请:
我遇到了同样的问题,发现你需要在事务中放置批量更新:
tr = session.getTransaction();
tr.begin();
updateQuery.executeUpdate();
tr.commit;
    
从Hibernate文档:   13.4。 DML风格的操作      ...      
UPDATE
和的伪句法   
DELETE
陈述是:
( UPDATE |
  DELETE ) FROM? EntityName (WHERE
  where_conditions)?
。      有些要点需要注意:         在from子句中,
FROM
关键字是可选的   在from子句中只能有一个实体。它可以,   但是,别名。如果是实体   name是别名,然后是任何属性   参考必须使用合格   别名。如果实体名称不是   别名,然后它是非法的   属性引用是合格的。   不能在批量中指定隐式或显式的连接   HQL查询。可以使用子查询   在where子句中,其中   子查询本身可能包含   连接。   where子句也是可选的。    虽然文档没有明确提到对set部分的限制,但可以解释只有where子句支持子查询。但... 我发现了一个关于批量更新问题的4岁(叹气)问题(HHH-1658),据记者了解,以下作品:
UPDATE Cat c SET c.weight = (SELECT SUM(f.amount) FROM Food f WHERE f.owner = c)
我想知道在from子句中使用别名是否有帮助。看起来无论如何都有些奇怪。     

要回复问题请先登录注册