我该如何进行游戏! 手动JPA交易?

通常,玩! 请求成功完成后提交事务 。 在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!的事务处理(可以在方法或控制器上使用@NoTransaction注释来执行此操作)。 否则,玩! 无论如何都会尝试在请求结束时提交事务,如果您已经自己完成了,那将导致exception。

你不需要做任何事情。 请求完成后没有任何exception,将为您提交事务。

只需确保在要在事务结束时保留的所有实体上调用“save”。