0

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

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

我想用所有 PersonInstitution 实体的另一个名称(id 为 50)替换一个名称(id 为 34)。但它给出了错误。

我可以加载所有对象并对其进行编辑并将它们持久化,但我认为这是一种效率较低的方法。

我将 JPA 与 EclipseLink 2.0 一起使用

4

1 回答 1

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 

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

于 2013-02-13T08:31:41.597 回答