我正在使用Spring和Hibernate。和Atomikos交易。我使用基於註釋的交易。我有一個DAO對象,並且在我調用entityManager.persist()來保存對象的方法之一中。 現在,無論何時在更新期間出現ORA錯誤,例如違反約束或其中一列的長度超過數據庫中的wat,我都會得到一個JTAUnexpectedRollbackException,而不是Spring引發的GenericJDBCException。 我嘗試過嘗試一下,堅持抓住,但我沒有得到任何例外。看起來Hibernate在刷新過程中會執行實際的更新語句,這發生在事務提交期間,因此我猜UnexpectedRollbackException。Hibernate刷新和JTAUnexpectedRollbackException異常
如何解決此問題並獲取GenericJDBCException而不是UnexpectedRollbackException?
爲什麼獲取GenericJDBCException而不是JTAUnexpectedRollbackException非常重要?爲什麼要在持久存儲上捕獲異常,而不是在事務提交時執行? – 2009-07-27 08:56:03