spring 两个方式同时开启事务为什么只有一个能回滚?不知道为什么,是不是不能这么用呢? 两个方法都加上了 @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED) 注解 自己手动声明的异常 在测试过程中,只有出现异常的方法才能够回滚,第一个方法直接写入数据库中了,不知道这样怎么处理
是createUser和sysUserBindingAuth两个方法的事务不能同时回滚么?既然事务的传播属性设置了Propagation.REQUIRED,那么调用的时候就是应该同时回滚的,但是在你的代码上,并没看到相互之间的调用。如果你是分两次调用的话,并不会产生同时的回滚,因为两次调用相当于产生了两个事务,Propagation.REQUIRED这个属性等于没有设置。只有你在createUser中调用sysUserBindingAuth(或相反)才能同时回滚。例如: createUser(){ // 你的逻辑 sysUserBindingAuth(); //调用,这个时候Propagation.REQUIRED才会被当成一个事务 } 另外,建议最好贴代码,不要贴图
是
createUser
和sysUserBindingAuth
两个方法的事务不能同时回滚么?既然事务的传播属性设置了
Propagation.REQUIRED
,那么调用的时候就是应该同时回滚的,但是在你的代码上,并没看到相互之间的调用。如果你是分两次调用的话,并不会产生同时的回滚,因为两次调用相当于产生了两个事务,Propagation.REQUIRED
这个属性等于没有设置。只有你在
createUser
中调用sysUserBindingAuth
(或相反)才能同时回滚。例如:
另外,建议最好贴代码,不要贴图