小编The*_*gle的帖子

@Transactional(noRollbackFor = RuntimeException.class)不会阻止RuntimeException上的回滚

@Transactional (noRollbackFor=RuntimeException.class)
public void methodA (Entity e){
   service.methodB(e);
}
Run Code Online (Sandbox Code Playgroud)

---以下服务方式---

@Transactional (propagation=Propagation.REQUIRES_NEW, noRollbackFor=RuntimeException.class)
public void methodB (Entity e){
   dao.insert(e);
}
Run Code Online (Sandbox Code Playgroud)

dao.insert(e)in in methodB()导致主键违规并抛出a ConstraintViolationException,这是一个子类时RuntimeException,我希望事务仍然因为noRollbackFor我使用的属性而提交.但是我发现外部事务(on methodA)仍然被HibernateTransactionManager消息回滚

org.springframework.transaction.UnexpectedRollback异常:事务已回滚,因为它已被标记为仅回滚

我发现了类似的问题,但不完全是这个问题.

java spring hibernate jpa transactions

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

hibernate ×1

java ×1

jpa ×1

spring ×1

transactions ×1