在我们没有开启事务的时候,如果使用mybatis,我们会在日志中看到如下的内容:"Closing non transactional SqlSession",这种情况说明没有开启Spring的事务管理,因此才会关闭一个非事务的SqlSession。
那么如何开启事务管理呢?最简单的方式就是添加下面两条配置:
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="dataSource" />
<!-- 指明使用注解的方式来管理事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
然后我们在需要加事务管理的Service中添加@Transactional注解