如何在JPA中更新一对多关系中的多方面?

时间:2015-08-06 16:12:51

标签: java jpa

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();

0 个答案:

没有答案