对同一实体的多次更新

时间:2019-02-18 14:19:23

标签: java spring hibernate

我有一个与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);

2 个答案:

答案 0 :(得分:0)

您需要使用;

 paymentRepository.update(savedP1);

如果您使用save方法,它将被插入到具有新ID的表中。

答案 1 :(得分:0)

如果您正在使用spring data jpa存储库,则保存现有实体将自动更新它,并且您的过程正确。 但是在javaEE jpa中,您需要使用EntityManager的merge方法才能更新现有实体。

paymentRepository.merge(savedP1);