JPA问题,我想更新一对多关系中的多方,例如我有很多项目的采购订单。接下来我想更新一个特定的po中的项目,折扣或misc费用...现在我唯一可行的解决方案就是这样....它需要2次提交,首先删除所有的多边,然后构造再次采购订单并再次提交...这是唯一的解决方案,没有第一次提交,它失败,因为它说...“该项目已经在数据库中,如果我将相同的项目附加到po”虽然我在最后提交之前使用了删除...
Environment.getEntityManager().getTransaction().begin();
for (POItem _item: po.getPOItems()) {
Environment.getEntityManager().remove(_item);
}
for (PODiscount _disc : po.getDiscounts()) {
Environment.getEntityManager().remove(_disc);
}
for (POMiscCharge _misc : po.getMiscCharges()) {
Environment.getEntityManager().remove(_misc);
}
Environment.getEntityManager().getTransaction().commit();
Environment.getEntityManager().getTransaction().begin();
// construct the purchase order again in here
po.setItems(newItems);
po.setDiscounts(newDiscounts);
po.setMiscCharges(newMiscCharges);
Environment.getEntityManager().getTransaction().commit();