спящий, mysql - PullRequest
       23

спящий, mysql

1 голос
/ 28 февраля 2011

У меня есть следующий запрос 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.заранее спасибо.

1 Ответ

0 голосов
/ 28 февраля 2011

Чтобы разрешить You can't specify target table 'TASK_ASSESSMENT' for update in FROM clause, перепишите запрос, чтобы использовать 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
...