JPA:在同一事务中插入和删除对象

时间:2018-04-06 09:47:28

标签: java jpa

我想在事务中将对象插入到数据库中,并且在将该对象保存在数据库中之后,我想在完成特定操作后删除它。我可以重新启动事务并执行删除然后提交吗?这是一种正确的做法吗?

示例:

Employee employee = new Employee();
String name = "Ronnie";
entityManager.getTransaction.begin();
employee.setName(name);
entityManager.persist(employee);
entityManager.getTransaction.commit();

//After few steps

entityManager.getTransaction.begin();
entityManager.remove(employee);
entityManager.getTransaction.commit();

2 个答案:

答案 0 :(得分:1)

简短回答:是的,你可以解决这个问题。

LONG ANSWER:是的,你可以。
每笔交易都独立于任何其他交易。因此,如果您执行某些操作,请提交它们(请记住,提交事务执行DB中的操作并关闭它),然后最近重新打开它,它独立于上一次事务。
通过刷新对DB的更改,您甚至可以在同一个事务中,无需关闭它:

Employee employee = new Employee();
String name = "Ronnie";
entityManager.getTransaction.begin();
employee.setName(name);
entityManager.persist(employee);
entityManager.flush();

//After few steps, the transaction is still the same
entityManager.remove(employee);
entityManager.getTransaction.commit();

答案 1 :(得分:0)

事务隔离数据库状态与其他事务。因此,您可以在同一个事务中插入和删除。不需要提交它。

相关问题