我使用Spring 3.0.4-RELEASE,JPA 2.0與Hibernate作爲提供程序,JTA JOTM用於我的應用程序中的事務。我已經在我的實體對象調用entityManager.merge
時收到以下錯誤:org.springframework.transaction.UnexpectedRollbackException for null @Version列
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)
此錯誤之際,將數據直接寫入數據庫(MySQL的)通過我們的了Talend ETL作業的結果。我注意到我的數據庫中的@Version
列有NULL
值,並決定將它們設置爲0,這解決了問題。
爲什麼不能@Version
列是NULL
?有其他人遇到過這個問題嗎?謝謝。