У меня есть реализация DAO, которая использует HibernateTransactionManager для управления транзакциями, и приложение имеет 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()
.
Если вы хотите предложить кладж и / или правильный способ справиться с этим, я был бы признателен.