1):
或者不捕获,直接在方法上抛出异常。
2):非事务方法调用事务方法:
一定要是代理对象去调用!
3):事务方法调用事务方法:
外面的大的事务会生效,里面的方法的事务的事务传播行为不生效。
要想里面的方法的事务传播行为也开起来,那也要使用代理对象去调用。
使用"代理对象"调用:
把要被调用的方法提一个对应的接口到自己所在 Service 实现类对应的 Service 接口,然后把自己的 Service 注入给自己,如:
@Service("groupInfoService")
public class GroupInfoServiceImpl
implements GroupInfoService {
//。。。
@Resource
@Lazy //防止因为注入自己而产生"循环依赖"
private GroupInfoService groupInfoService;
//。。。
}
然后通过 Service.被调用的方法() 的形式去调用,而不是直接这样调用:被调用的方法()