更新一个查询jpa中的实体列表

时间:2015-08-11 09:05:36

标签: java hibernate jpa

我需要在一个查询中更新对象列表。 我有类Parent,其中包含ManyToMany关系中的Child列表。 我需要通过将子列表设置为空来更新父列表(从连接表中删除所有子引用)。 目前我设置子列表以清空并使用合并操作更新查询中的每个实体,但是当我有大量药房时,查询太多。

我尝试了这个查询:

  

update Parent p set p.children=:children where p in (:parents)

其中:儿童是new HashSet<Child>

但它给了我错误

  

意外的子树结束

有没有办法在一个查询中更新列表?我正在使用jpa实体经理。 感谢。

1 个答案:

答案 0 :(得分:0)

您似乎错过了where关键字

update Parent p set p.children=:childrenwhere where p in (:parents)

或者您可以尝试使用id

update Parent p set p.children=:childrenwhere where p.id in (:parentIds)