Spring MVC Configuration File Transaction Rollback Failed (Mysql8.0+)

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.