@Transactional (noRollbackFor=RuntimeException.class) 不阻止 RuntimeException 上的回滚
2022-09-03 13:02:59
@Transactional (noRollbackFor=RuntimeException.class)
public void methodA (Entity e){
service.methodB(e);
}
---服务方法如下---
@Transactional (propagation=Propagation.REQUIRES_NEW, noRollbackFor=RuntimeException.class)
public void methodB (Entity e){
dao.insert(e);
}
当 in 导致主键冲突并抛出一个 ,这是 的子类,我希望事务仍然会因为我使用的属性而提交。但是我观察到外部事务(on)仍然被消息回滚dao.insert(e)
methodB()
ConstraintViolationException
RuntimeException
noRollbackFor
methodA
HibernateTransactionManager
org.springframework.transaction.UnexpectedRollback Exception:事务已回滚,因为它已被标记为仅回滚
我发现了类似的问题,但并不完全是这个问题。