Skip to content

Commit d807f27

Browse files
authored
Merge pull request #331 from MadJlzz/master
Relax MyBatisPagingItemReader to allow constructor instanciation
2 parents 662ce50 + ccc51e6 commit d807f27

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/main/java/org/mybatis/spring/batch/MyBatisPagingItemReader.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@
1515
*/
1616
package org.mybatis.spring.batch;
1717

18-
import static org.springframework.util.Assert.notNull;
19-
import static org.springframework.util.ClassUtils.getShortName;
20-
21-
import java.util.HashMap;
22-
import java.util.Map;
23-
import java.util.concurrent.CopyOnWriteArrayList;
24-
2518
import org.apache.ibatis.session.ExecutorType;
2619
import org.apache.ibatis.session.SqlSession;
2720
import org.apache.ibatis.session.SqlSessionFactory;
2821
import org.mybatis.spring.SqlSessionTemplate;
2922
import org.springframework.batch.item.database.AbstractPagingItemReader;
3023

24+
import java.util.HashMap;
25+
import java.util.Map;
26+
import java.util.concurrent.CopyOnWriteArrayList;
27+
28+
import static org.springframework.util.Assert.notNull;
29+
import static org.springframework.util.ClassUtils.getShortName;
30+
3131
/**
3232
* {@code org.springframework.batch.item.ItemReader} for reading database
3333
* records using MyBatis in a paging fashion.
@@ -89,12 +89,14 @@ public void setParameterValues(Map<String, Object> parameterValues) {
8989
public void afterPropertiesSet() throws Exception {
9090
super.afterPropertiesSet();
9191
notNull(sqlSessionFactory, "A SqlSessionFactory is required.");
92-
sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory, ExecutorType.BATCH);
9392
notNull(queryId, "A queryId is required.");
9493
}
9594

9695
@Override
9796
protected void doReadPage() {
97+
if (sqlSessionTemplate == null) {
98+
sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory, ExecutorType.BATCH);
99+
}
98100
Map<String, Object> parameters = new HashMap<>();
99101
if (parameterValues != null) {
100102
parameters.putAll(parameterValues);

0 commit comments

Comments
 (0)