@Transactional子事务单独提交

需求是在添加了事务的service方法内,执行一个单独事务的添加方法,service报错等导致数据回滚时,单独事务的方法不回滚。

单独提交方法需要放在不用的服务类里,使用Transactional的propagation属性来实现隔离事务。
设置propagation等于Propagation.REQUIRES_NEW,表示开启单独事务,不受其他事务影响。

	@Override
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void saveLogCommit(Long orderId, String logContent) {
        //TODO
    }

注意:如果开启新事物的方法内部报错了,导致方法回滚,则外部事务也会回滚。


PS:@Transactional注解的rollbackFor参数可对特定异常类型进行回滚。

你可能感兴趣的:(java,开发语言)