1

我正在尝试将此查询从 MySQL 复制到 HQL: UPDATE users u, mines m SET u.mana = u.mana + COALESCE((SELECT SUM(m.mana_rate) FROM mines m WHERE m.user_id = u.id) , 0)

只需在 HQL 中执行此操作: update User u set u.mana = u.mana + (select coalesce(sum(m.manaRate), 0) from Mine m where m.userId = u.id)

给出以下错误: 线程“main”中的异常 org.hibernate.hql.ast.QuerySyntaxException:意外的 AST 节点:查询 [update mm.user.User u set u.mana = u.mana + (select coalesce(sum(m. manaRate), 0) 来自 mm.map.buildings.mines.Mine m 其中 m.userId = u.id)]

我是 Hibernate 的新手,所以我真的不知道从哪里开始,以及错误的含义。如果不可能,我可以在 Hibernate 中编写本机 MySQL 查询吗?

编辑:问题似乎出在“u.mana = u.mana +”,因为当我只是做 u.mana = (select... 查询工作得很好

4

1 回答 1

1

您可以在 hibernate 中编写本机查询,更多信息请参见此处。有点确定您的查询有什么问题。

于 2009-04-15T14:49:11.903 回答