我正在使用 Spring 3.0.4-RELEASE、JPA 2.0 和 Hibernate 作为提供者,以及 JTA JOTM 用于我的应用程序中的事务。entityManager.merge
调用我的实体对象时收到以下错误:
org.objectweb.jotm.SubCoordinator commit_one_phase
INFO: Rollback during beforeCompletion in SubCoordinator.commit_one_phase
org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException
at
org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1012)
此错误是由于通过我们的 Talend ETL 作业将数据直接插入数据库 (MySQL) 造成的。我注意到我@Version
在数据库中的列有NULL
值,并决定将它们设置为 0,这解决了问题。
为什么不能@Version
列NULL
?有没有其他人遇到过这个问题?谢谢。