好吧,我有一个带有分支机构元素的餐厅实体。现在,我的问题是如何从餐厅中取出分支,因为可嵌入的对象没有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);