Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 使用JPQL更新方法用另一个实体更新一个实体_Jpa_Eclipselink_Jpql - Fatal编程技术网

Jpa 使用JPQL更新方法用另一个实体更新一个实体

Jpa 使用JPQL更新方法用另一个实体更新一个实体,jpa,eclipselink,jpql,Jpa,Eclipselink,Jpql,我试图用一对多关系替换JPQL中的另一个实体,但不知道如何正确表达JPQL update PersonInstitution pi set pi.designation = (select d from Designation d where d.id = 50) where pi.designation.id = 34] 我想用所有人格机构实体的另一个名称(id 50)替换一个名称(id 34)。但它会带来错误 我可以加载所有对象并编辑它们并将它们保留回去,但我认为这是一种效率较低的方法 我

我试图用一对多关系替换JPQL中的另一个实体,但不知道如何正确表达JPQL

update PersonInstitution pi set pi.designation = (select d from Designation d where d.id = 50) where pi.designation.id = 34]
我想用所有人格机构实体的另一个名称(id 50)替换一个名称(id 34)。但它会带来错误

我可以加载所有对象并编辑它们并将它们保留回去,但我认为这是一种效率较低的方法


我将JPA与EclipseLink 2.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 
您必须手动执行此操作,否则可以尝试使用本机查询