我有一个与Hibernate相关的问题。我可以对一个实体执行多次保存吗?您认为此代码有任何问题吗?
//我创建了一个类型为Payment的新对象,该对象需要持久保存...
IList<IWebElement>
//设置一些值。
Payment p1 = new Payment();
//将其持久保存到数据库以检索自动生成的ID,以便将其中继到另一个函数。
p1.setName("abc");
//为同一对象设置更多值...
Payment savedP1 = paymentRepository.save(p1);
int sum = calPaymentSum(savedP1.getId());
//更新先前保存到数据库的对象。
savedP1.setSum(sum);
答案 0 :(得分:0)
您需要使用;
paymentRepository.update(savedP1);
如果您使用save
方法,它将被插入到具有新ID的表中。
答案 1 :(得分:0)
如果您正在使用spring data jpa存储库,则保存现有实体将自动更新它,并且您的过程正确。 但是在javaEE jpa中,您需要使用EntityManager的merge方法才能更新现有实体。
paymentRepository.merge(savedP1);