现在的需求是在一个事物内部开启独立事务,独立事务,当外部的事务在产生异常回滚的时候,内部的独立事务读数据库的操作不会回滚,可以正常入库。
1、内部的方法对数据库的操作方法不管再多内部,都只需要对最外面的那个方法加上注解。但是这个累需要是一个spring Bean,也就是在spring容器中,
2、这个需要独立事务的方法所在类要是一个springbean ,那么有两种方法,一种就是本来就可以打一个注解@Component,或者把这个方法抽取成一个接口,然后子类实现,然后在子类上打上注解@component,
3、一个例子,抽象类实现接口中的方法,这个方法中调用了本类中的另一个方法,另一个方法有对数据库的操作,然后抽象的子类打上注解@component,这样子类调用这个方法的时候就可以实现独立事务了
@Transactional(rollbackFor = Throwable.class, propagation = Propagation.REQUIRES_NEW)