【发布时间】:2014-06-19 15:34:25
【问题描述】:
我正在尝试通过 MySQL 数据库进行设置以在 Hibernate(使用 HQL)中工作的简单更新。那里 关于与我遇到的错误类似的错误,还有其他线程,但没有任何内容可以说明相同的问题。
我想要做的更新是用同一张表中另一行的信息更新一行。这里没什么特别的,我有一个使用 Toad 在 MySQL 中工作的类似版本。
据我了解,HQL 不喜欢内部连接进行更新,而是使用子查询 - 我这样做对吗?
不管怎样,下面是我使用的更新的第一个版本。这引发了错误消息 “无效路径:'tbB.column1'”并查看以下内容,我不确定问题出在哪里。
UPDATE tableA tbA
SET tbA.column1 = tbB.column1
WHERE tbA.operationalId =
(SELECT tbB.operationalId FROM tableA AS tbB
WHERE tbA.operationalId = tbB.operationalId)
AND tbA.column2 = 1
进一步研究这个问题,我将上面列出的“设置”语句替换为直 将值分配给 tbA.column1 并遇到下面列出的不同错误。
error = "您不能在 FROM 子句中指定目标表 'tableA' 进行更新"
UPDATE tableA tbA
SET tbA.column1 = 1
WHERE tbA.operationalId =
(SELECT tbB.operationalId FROM tableA AS tbB
WHERE tbA.operationalId = tbB.operationalId)
AND tbA.column2 = 1
如果有人能指出我正确的方向,我将不胜感激 - 我不确定是否需要进一步调整 sql 才能在 Hibernate 中成功运行。
提前谢谢你。
【问题讨论】:
标签: java mysql sql hibernate hql