我想在单个EJB方法调用中运行多个Hibernate事务(在WildFly中运行)。目前我的 current_session_context_class 设置为 jta , transaction.factory_class 是 org.hibernate.transaction.JTATransactionFactory 。
现在,例如,以下代码失败:
public void myMethod(){
try{
Transaction tr = myHibernateSessionFactory.getCurrentSession().beginTransaction();
//execute some DB operation
tr.commit();
tr = myHibernateSessionFactory.getCurrentSession().beginTransaction();
//execute some DB operation
tr.commit();
}catch(Exception e){
e.printStackTrace();
}
}
问题是第二次调用 beginTransaction()会抛出异常 org.hibernate.TransactionException:事务实例不再有效。
如何为当前会话获取新交易?