解决Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly

来源:互联网 发布:淘宝上下架什么意思 编辑:程序博客网 时间:2024/06/05 14:45
  • 代码如下所示:

这里写图片描述

  • getReference接口当实体不存在时会抛出EntityNotFoundException异常,在下面的上层调用会捕获,但是调用会抛出Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly的异常。

这里写图片描述

  • 原因:
  • 在一个transactional中如果有另一transaction发生了异常,即使你捕捉了这个异常,那么Transaction也会被定义成RollbackOnly,这也正是事务管理的原则,当系统检测到RollbackOnly位true时就会抛出该异常。
  • 补救:修改为sql语句即可:
    这里写图片描述
0 0