我试图复制这个查询从MySQL到HQL: UPDATE users u,mines m SET u.mana = u.mana + COALESCE((SELECT SUM(m.mana_rate )FROM地雷米WHERE m.user_id = u.id),0)休眠:更新总结从其他表
简单地做这在HQL: 更新用户U设定u.mana = u.mana +(选择聚结(总和(m.manaRate ),0)从矿井m,其中m.userId = u.id)
给出以下错误: 异常在线程 “主” org.hibernate.hql.ast。 QuerySyntaxException:意外的AST节点:query [更新mm.user.User u set u.mana = u.mana +(选择coalesce(sum(m.manaRate),0)from mm.map.buildings.mines.Mine m其中m .userId = u.id)]
我是Hibernate的新手,所以我不知道从哪里开始,以及错误的含义。 如果这是不可能的,我可以在Hibernate中编写一个本地MySQL查询吗?
编辑:这个问题似乎是在“u.mana = u.mana +”,因为当我只是做u.mana =(选择...的查询工作就好
我也经历过奇怪的行为执行大规模删除涉及子查询,并在最后使用本机SQL代替它似乎是一个问题HQL parser。 – 2009-12-08 17:45:06