我想在事务中将对象插入到数据库中,并且在将该对象保存在数据库中之后,我想在完成特定操作后删除它。我可以重新启动事务并执行删除然后提交吗?这是一种正确的做法吗?
示例:
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();
答案 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)
事务隔离数据库状态与其他事务。因此,您可以在同一个事务中插入和删除。不需要提交它。