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

  • 代码如下所示:

解决Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly_第1张图片

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

解决Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly_第2张图片

  • 原因:
  • 在一个transactional中如果有另一transaction发生了异常,即使你捕捉了这个异常,那么Transaction也会被定义成RollbackOnly,这也正是事务管理的原则,当系统检测到RollbackOnly位true时就会抛出该异常。
  • 补救:修改为sql语句即可:
    解决Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly_第3张图片

你可能感兴趣的:(JAVA)