- 代码如下所示:
- getReference接口当实体不存在时会抛出EntityNotFoundException异常,在下面的上层调用会捕获,但是调用会抛出Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly的异常。
- 原因:
- 在一个transactional中如果有另一transaction发生了异常,即使你捕捉了这个异常,那么Transaction也会被定义成RollbackOnly,这也正是事务管理的原则,当系统检测到RollbackOnly位true时就会抛出该异常。
- 补救:修改为sql语句即可: