Есть ли способ получить текущий тип исполнителя?
Я пытаюсь сделать пакетную вставку для каждого метода, я получаю исключение, сообщающее, что я не могу изменить тип работающего исполнителя. Это очень странно, так как у меня есть сессия 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()
метод, так что вам просто нужно использовать правильный тип и иметь несколько вариантов, чтобы сделать это
- впрыскивать
SqlSessionType
вместо простогоSqlSession
на сервис, где вам нужен доступ к типу исполнителя - бросать
SqlSession
вSqlSessionTemplate
а затем использоватьgetExecutorType
- впрыскивать
SqlSessionType
свойство s использовать SPEL к сервису, как это:
@Value("#{sqlSession.executorType}")
private ExecutorType executorType;