Problem Description
In Mysql8.0+ environment, when using Spring MVC configuration file to configure transactions, transaction rollback fails.
Solution
In Mysql8.0, you need to inject SqlSessionTemplate:
<!-- Mysql8.0 transaction rollback requires this injection-->
<bean class="org.mybatis.spring.SqlSessionTemplate" id="sessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
<constructor-arg name="executorType" value="BATCH"/>
</bean>
Key Point
You must inject SqlSessionTemplate and set executorType to BATCH mode.
