1

私は次の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 のクエリを修正するのを手伝ってくれませんか。前もって感謝します。

4

1 に答える 1

0

を解決するには、代わりにYou can't specify target table 'TASK_ASSESSMENT' for update in FROM clause使用するクエリを書き直します(mysql では、次のように記述する必要があります)。JOININ

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
于 2011-02-28T17:37:30.337 に答える