2013-02-12 80 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 

您必须手动完成,否则可以尝试使用本机查询。