我有一个使用HibernateTransactionManager进行事务管理的DAO实现,应用程序有2个会话工厂。我在下面的transactionManager.commit()行处遇到异常。在与不同会话工厂相关的事务管理器中执行Hibernate操作会导致问题吗?
TransactionStatus status = transactionManager.getTransaction(def);
try{
doHibernateStuff1(); //Does Hibernate stuff with session
//factory related to Tx Manager
doHibernateStuff2(); //Does Hibernate stuff with session
//factory not related to Tx Manager
}
catch(DataAccessException){
transactionManager.rollback(status);
}
transactionManager.commit(status); //Exception happens here.
该异常似乎试图再次执行doHibernateStuff2();
操作于txManager.commit()
。
如果您想建议一个权宜之计和/或妥善处理此事的方法,我会非常感激。