我在非 EJB 环境中使用 Hibernate。我知道在使用 EJB 时有几个Transation Annotation 。但是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 注释?