通常,玩! commits the transaction after a request completes successfully . 在 Play 中手动提交事务的正确方法是什么?
void addPerson() {
Person p = new Person("John", "Doe");
p.save();
// TODO - commit the transaction
// Now p should have an ID
assert p.id != null;
usePersonIdForSomethingNasty(p.id);
}
最佳答案
您可以通过调用 JPA.em() 获取 Hibernate EntityManager。然后,您可以从那里访问事务 (JPA.em().getTransaction())。
如果您打算自己管理事务,则需要禁用 Play! 的事务处理(您可以在方法或 Controller 上使用 @NoTransaction 注释来执行此操作)。否则,玩!无论如何都会尝试在请求结束时提交事务,如果您自己已经这样做,则会导致异常。
关于java - 我如何提交 Play! JPA交易手动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8169279/