0

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

4

1 回答 1

1

在你的例子sqlSession中是类型SqlSessionTemplate并且它有getExecutorType()方法所以你只需要使用正确的类型并且有几个选项可以做到这一点

  1. 向需要访问执行器类型的服务注入SqlSessionType而不是简单地注入SqlSession
  2. 投射SqlSessionSqlSessionTemplate然后使用getExecutorType
  3. injectSqlSessionType的属性使用 SPEL 到服务,如下所示:

@Value("#{sqlSession.executorType}") private ExecutorType executorType;

于 2015-05-29T20:34:58.037 回答