非 EJB 環境で Hibernate を使用しています。EJB を使用する場合、いくつかのトランザクション アノテーションがあることを知っています。しかし、Hibernate のドキュメントでは、これらすべてのシナリオについて説明していないようです。私が知りたいのは、コードを実行するときです
try {
factory.getCurrentSession().beginTransaction();
// Do some work
factory.getCurrentSession().load(...);
factory.getCurrentSession().persist(...);
factory.getCurrentSession().getTransaction().commit();
}
catch (RuntimeException e) {
factory.getCurrentSession().getTransaction().rollback();
throw e; // or display error message
}
すでに実行中のトランザクションがあるとどうなりますか?(新しいトランザクションが作成されるか、既存のトランザクションが使用されますか?後者の場合、前者を達成するにはどうすればよいですか?またその逆の場合はどうすればよいですか?) Hibernate を使用したさまざまな EJB アノテーション?