With @Transaction
和Spring的跟蹤級別日誌記錄我發現Hibernate在db約束上有一個異常,但它只是回退事務。我嘗試使用@Exception
沒有成功,試圖抓住它。Spring Hibernate吃異常
我在網上看到一個建議,使用Spring AOP @AfterThrowing
來捕捉這樣的事件。
這似乎是一個處理普通事件的相當複雜的方式。 try/catch和老式的提交/回滾似乎更容易。 Spring Hibernate中沒有更好的方法 ?
我正在處理隊列中的XML消息。根據我得到的異常的類型,我可能只想捕獲它,並將壞的傳入隊列消息放入數據庫錯誤表中並繼續事務。 (如果我只是盲目地回滾消息,將會放回隊列,這在某些情況下可能是好的,但在其他情況下不會)。
從我讀過的有些方法知道一些錯誤(出於某種原因不是約束錯誤)並記錄它們。在發生異常之後是否有辦法中斷事務並決定是否要提交,繼續或回滾?
如果沒有,可以使用舊式提交併使用spring hibernate進行回滾嗎?
這不是吃它處理它的例外。吃東西會很有吸引力,不會回滾。 –
通過吃飯我的意思是在處理後不會拋出另一個異常。它應該拋出一個Hibernate運行時異常(Exception的子類),但是當我使用@Exception時,什麼都不會被捕獲。我想知道異常,並根據其類型更改處理。 – user1069528
他們似乎已經去了一個通知模型。我個人不會對「有例外,所以我回滾」感到不舒服。現在,這些溢出的牛奶已經在地毯下掃過了。 –