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

rip*_*234 5 java jpa transactions playframework

通常,玩!请求成功完成后提交事务.在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);
}
Run Code Online (Sandbox Code Playgroud)

Law*_*pin 5

您可以通过调用JPA.em()来获取Hibernate EntityManager.然后,从那里,您可以访问事务(JPA.em().getTransaction()).

如果您打算自己管理事务,则需要禁用Play!的事务处理(可以在方法或控制器上使用@NoTransaction注释来执行此操作).否则,玩!无论如何都会尝试在请求结束时提交事务,如果你自己已经完成了,那将导致异常.