2013-02-12 37 views
0

我試圖用一個取代的實體與JPQL另一個實體一對多關係另一個實體的一個實體,但不知道如何短語JPQL正確。更新使用JPQL更新方法

update PersonInstitution pi set pi.designation = (select d from Designation d where d.id = 50) where pi.designation.id = 34] 

我想與另一個指定(編號爲50)中的所有PersonInstitution實體的替換一個指定(ID爲34)。但它會給出錯誤。

我可以加載的所有對象,並對其進行編輯,並堅持他們回來,但我認爲它作爲一種低效率的方式。

我使用JPA與EclipseLink 2.0

回答

0

根據規範,它可能不適用於JPQL。

update_clause ::= UPDATE entity_name [[AS] identification_variable] SET update_item {, update_item}* 

update_item ::= [identification_variable.]{state_field | single_valued_object_field} = new_value 

您必須手動完成,否則可以嘗試使用本機查詢。