mybatis non transactional SqlSession的解决

这个问题有两种解决方案:

第一种:
通过给方法加上@Transactional注解并且给配置中加入事务扫描

<tx:annotation-driven transaction-manager="transactionManager"/>

第二种:
通过配置来实现事务的同步

  id="transactionAdvice" transaction-manager="transactionManager">
    
      name="delete*" propagation="REQUIRED"  read-only="false" 
                            rollback-for="Exception" no-rollback-for="RuntimeException"/>
      name="insert*" propagation="REQUIRED" read-only="false" 
                            rollback-for="java.lang.RuntimeException"  />
      name="update*" propagation="REQUIRED" read-only="false" 
                            rollback-for="java.lang.Exception" />
      name="select*" propagation="SUPPORTS"/>
      name="save*"  propagation="REQUIRED" read-only="false" rollback-for="Exception" />
      name="remove*"  propagation="REQUIRED" read-only="false" rollback-for="Exception" />
      name="add*"  propagation="REQUIRED" read-only="false" rollback-for="Exception" />
      name="up*"  propagation="REQUIRED" read-only="false" rollback-for="Exception" />
    
    
    -- 扫描需要配置的类 -->
    
        ref="transactionAdvice" pointcut="execution(* com.ha.service.*.*(..))"/>
    

你可能感兴趣的:(Java框架)