我對註釋@Transactional
存在問題。管理交易回滾
我有一個方法做一些東西,並在裏面我扔和catch。
我認爲(即使我已經發現異常)它將事務設置爲rollbackOnly(某些觸發器異常拋出),並且它沒有成功提交事務。
以下是錯誤:
org.springframework.transaction.TransactionSystemException : Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly
我可以添加在@Transactional
無回退,因爲我拋出和捕獲,但我不認爲這是一個真正的解決方案除外。
也許有一種方法來取消該rollbackOnly的交易,但我不認爲這是最好的做法太...
那麼,你有什麼想法,我應該怎麼辦?
感謝,
謝謝你的回答。 (我只能閱讀你給出的鏈接的一部分),而且我不確定你是否在討論在我的情況下通常不使用異常,還是不使用運行時異常。注意:(我使用一個異常來警告從某些類拋出的錯誤到其他類) – RoD 2011-02-25 11:08:17
@RoD您應該閱讀Effective Java書,它是每個Java開發人員應該閱讀的一本書。但要理解這一特定方面,您可以閱讀本搜索返回的任何文章:[例外「流量控制」](http://www.google.com/search?q=exceptions+%22flow+control%22) – 2011-02-25 13:44:18