1

非 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 アノテーション?

4

1 に答える 1