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