我正在使用使用@Transactional注釋的事務方法。我正在嘗試使用 JpaRepository 的 save() 方法將對象保存到數據庫中。(由于數據庫關系的限制,這將引發錯誤。)現在,當我調試程序時,我發現在事務方法結束時拋出異常,而不是在save調用方法時拋出異常。這與非事務性方法的行為完全不同。有人可以解釋為什么會這樣嗎?為什么在事務方法結束時拋出異常而不是實際發生時拋出異常。我的第二個問題是,當方法是事務性時,拋出的異常是DataViolationException,當它是非事務性時,拋出的異常是PSQLException(使用 Postgres 數據庫)。為什么呢?下面是代碼@Transactionalpublic ResponseType methodA(UserObject userObject) { //save call jpaRepoObject.save(userObject); //next call will fail due to relational constraints on database jpaRepoObject.save(userObject); //should throw PSQLException/DataViolationException return new ResponseType("success"); //Error thrown after this line.}
添加回答
舉報
0/150
提交
取消