嗯,我有一个餐厅实体,里面有一个分支的元素集合。现在,我的问题是如何从餐厅中删除分支,因为可嵌入对象没有Id。通常,如果分支是一个实体,我会做什么
( entityManager.remove(entityManager.getReference(Branch.class,branchId);
但是由于分支是可嵌入的对象(没有ID),我不知道如何实现它。一些代码示例将被高度赞赏。提前谢谢。
发布于 2015-05-05 08:59:09
您需要标识要删除的对象(显然没有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);
https://stackoverflow.com/questions/30058595
复制相似问题