Я новичок в Spring и hibernate, пожалуйста, помогите,
Я использую (Jboss 6.0 Final в качестве сервера)
org.springframework.transaction.jta.JtaTransactionManager
как bean-компонент со свойствами, установленными
TransactionManagerName как java: / TransactionManager и
userTransactionName как java: comp / UserTransaction.
В коде я установил
jtaTxManager
свойство для установщиков.
Затем
javax.transaction.TransactionManager tx = jtaTxManager.getTransactionManager();
и затем транзакция запускается с помощью оператора
tx.begin()
.
Я использовал
sessionFactory.getCurrentSession()
, чтобы получить сеанс hibernate
наконец, я использовал
tx.commit()
Я использую hibernate для сохранения нескольких записей в транзакции jta, но если между ними возникает какая-либо ошибка базы данных, между некоторыми записями, такими как исключение нарушения ограничения, выдается на tx.commit (), который
javax.transaction.RollbackException
, который при перехвате я использовал для вызова tx.rollback (), но моя транзакция не получает отката и не получает следующее исключение для tx.rollback (). Я не установил никакой тип auto commit property в свойствах гибернации.
Но мои первые из записей в идеале сохраняются в базе данных, в идеале они не должны сохраняться, но во время отката происходит это исключение, поэтому я думаю, что именно поэтому они сохраняются.
java.lang.IllegalStateException: BaseTransaction.rollback - [com.arjuna.ats.internal.jta.transaction.arjunacore.notx] [com.arjuna.ats.internal.jta.transaction.arjunacore.notx] no transaction!
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.rollback(BaseTransaction.java:158)
at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.rollback(BaseTransactionManagerDelegate.java:114)