从JPA元素集合中删除元素



好吧,我有一个带有分支机构元素的餐厅实体。现在,我的问题是如何从餐厅中取出分支,因为可嵌入的对象没有ID。通常,如果分支是实体是

,我会做的

entitymanager.remove(entitymanager.getReference(branch.class,branchid));

但是,由于分支是可嵌入的对象(无ID),因此我不确定如何实现它。一些代码示例将不高度赞赏。提前致谢。

您需要识别要删除的对象(显然没有ID,因为没有ID,但是其他字段的组合应该是唯一的)实体。

由于没有ID,JPA将从集合中删除所有元素,然后再次插入它们,但没有删除。

Branch toBoRemoved = ...; // find out which element needs to be removed
for (Iterator i = entity.getBranches().iterator(); i.hasNext();) {
    Branch b = (Branch)i.next();
    if (b.equals(toBeRemoved)) {  // you'll need to implement this
        i.remove();
    }
}
entityManager.merge(entity);

相关内容

  • 没有找到相关文章

最新更新