有没有办法获得当前执行者类型?

时间:2015-05-27 09:58:22

标签: mybatis spring-mybatis

我正在尝试使用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中看不到任何方法...

1 个答案:

答案 0 :(得分:1)

在您的示例sqlSession中,SqlSessionTemplate类型为getExecutorType(),因此您只需要使用正确的类型并有多个选项来执行此操作

  1. SqlSessionType而不是普通SqlSession注入您需要访问执行者类型的服务
  2. SqlSession投射到SqlSessionTemplate,然后使用getExecutorType
  3. 注入SqlSessionType的属性使用SPEL到这样的服务:
  4. @Value("#{sqlSession.executorType}") private ExecutorType executorType;