Есть ли способ получить текущий тип исполнителя?

Я пытаюсь сделать пакетную вставку для каждого метода, я получаю исключение, сообщающее, что я не могу изменить тип работающего исполнителя. Это очень странно, так как у меня есть сессия 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 ответ

Решение

В вашем примере sqlSession имеет тип SqlSessionTemplate и это имеет getExecutorType() метод, так что вам просто нужно использовать правильный тип и иметь несколько вариантов, чтобы сделать это

  1. впрыскивать SqlSessionType вместо простого SqlSession на сервис, где вам нужен доступ к типу исполнителя
  2. бросать SqlSession в SqlSessionTemplate а затем использовать getExecutorType
  3. впрыскивать SqlSessionTypeсвойство s использовать SPEL к сервису, как это:

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

Другие вопросы по тегам