Transaction rolled back because it has been marked as rollback-only
1. 原因
- 线上故障,后来定位异常,最终发现是spring事务嵌套的导致的,特此记录
我追查了代码,发现是事务嵌套的问题,网上搜了很多,最终
YourBatman的博客解决了我的问题

发生回滚(在类上添加了@Transactional注解,所以后面的方法都是有事务的)发生回滚(在类上添加了@Transactional注解,所以后面的方法都是有事务的)
1. 嵌套事务的情况,发生异常正常回滚
- 添加transactional注解后当发生异常,回滚
新增文章分类

- 新增文章

- 测试

数据发生异常且正常回滚
2. 嵌套事务的情况,发生异常报Transaction rolled back because it has been marked as rollback-only

- 使用try catch包起来,然后报异常

-
解决方案:在catch中添加TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-
或者尽量不要在service中try catch

