我有以下 hql 查询:
UPDATE TaskAssessment taskAssessment
SET taskAssessment.activeFlag = false
WHERE taskAssessment IN
(
SELECT taskAssessment2
FROM TaskAssessment taskAssessment2
Where taskAssessment2.activeFlag = true
AND taskAssessment2.patient.id
AND taskAssessment2.needsLevel.careNeed = :careNeed
)
但它给我错误:
You can't specify target table 'TASK_ASSESSMENT' for update in FROM clause
谁能帮我更正对 mysql 和 hibernate 的查询。提前致谢。
最佳答案
要解决 您无法在 FROM 子句中指定目标表 'TASK_ASSESSMENT' 进行更新
,重写查询以使用 JOIN
而不是 IN
(在 mysql 中你需要这样写):
UPDATE TaskAssessment a
INNER JOIN TaskAssessment a2 ON (a2.id = a.id)
SET a.activeFlag = 0
WHERE a2.active_flag = 1 AND
a2.patient_id = :patient_id AND a2.needsLevel_careNeed = :careNeed
关于mysql - hibernate ,mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5145268/