为了账号安全,请及时绑定邮箱和手机立即绑定

Spring @Transactional 方法错误处理

Spring @Transactional 方法错误处理

潇潇雨雨 2021-10-06 09:49:44
我正在使用使用@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.}
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信