我正在尝试使用for each方法进行批量插入,我得到一个异常,告诉我我无法更改正在运行的执行程序类型。 这很奇怪,因为我有一个如此定义的SQL会话:
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
<constructor-arg index="1" value="BATCH" />
</bean>
无论哪种方式,我都想检查当前执行器类型是什么,以确保它是BATCH。怎么做?我在SQLSession中看不到任何方法...
答案 0 :(得分:1)
在您的示例sqlSession
中,SqlSessionTemplate
类型为getExecutorType()
,因此您只需要使用正确的类型并有多个选项来执行此操作
SqlSessionType
而不是普通SqlSession
注入您需要访问执行者类型的服务SqlSession
投射到SqlSessionTemplate
,然后使用getExecutorType
SqlSessionType
的属性使用SPEL到这样的服务:
@Value("#{sqlSession.executorType}")
private ExecutorType executorType;