스프링 배치 파라미터 던지기 (전자정부프레임워크 2.7.1-32bit, java 1.6)
- 작성자 :
- 김*욱
- 작성일 :
- 2015-01-21 18:34:39
- 조회수 :
- 1,452
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요, 스프링배치 프레임워크 개발 중입니다.
배치 실행시에 파라미터를 던져야 하는데 계속 null만 전달됩니다.
job 등록할 때
<bean id="itemReader" class="org.mybatis.spring.batch.MyBatisPagingItemReader" scope="step">
<property name="sqlSessionFactory" ref="rfid_SqlSessionFactory"/>
<property name="queryId" value="selectSOURCE_TABLE" />
<property name="pageSize" value="500" />
<property name="parameterValues">
<map>
<entry key="BAST_DT" value="#{jobParameters[BASE_DT]} "/>
</map>
</property>
</bean>
이렇게 파라미터 설정했습니다.
sqlmap의 sql 문 안에
CONCAT(#{BASE_DT, jdbcType=VARCHAR},'000000') AS LST_CHG_PGM_ID 식으로 파라미터 전달하였습니다.
EgovBatchRunner 상속한 클래스도 만들었습니다.(BatchRunner_new.java)
context-batch-job-launcher.xml의
<bean id="eGovBatchRunner" class="egovframework.rte.bat.sample.scheduler.BatchRunner_new">
부분도 맞게 고쳤습니다.
BatchRunner_new.java에서
createUniqueJobParameters()를 오버라이드 해도 오버라이드 한 내용이 반영되지 않고
부모 클래스(EgovBatchRunner)의 createUniqueJobParameters()가 실행되더군요.
그래서 addJobParameter()를 호출해서 BASE_DT 파라미터를 전달해야 겠는데,
어떻게 addJobParameter()를 호출할지 모르겠네요.
제가 잘못 접근하는것 같네요.
파라미터 전달하는 법 뒤져도 상세히 나오는 설명은 못찾겠네요.
도움 요청드립니다.
배치 실행시에 파라미터를 던져야 하는데 계속 null만 전달됩니다.
job 등록할 때
<bean id="itemReader" class="org.mybatis.spring.batch.MyBatisPagingItemReader" scope="step">
<property name="sqlSessionFactory" ref="rfid_SqlSessionFactory"/>
<property name="queryId" value="selectSOURCE_TABLE" />
<property name="pageSize" value="500" />
<property name="parameterValues">
<map>
<entry key="BAST_DT" value="#{jobParameters[BASE_DT]} "/>
</map>
</property>
</bean>
이렇게 파라미터 설정했습니다.
sqlmap의 sql 문 안에
CONCAT(#{BASE_DT, jdbcType=VARCHAR},'000000') AS LST_CHG_PGM_ID 식으로 파라미터 전달하였습니다.
EgovBatchRunner 상속한 클래스도 만들었습니다.(BatchRunner_new.java)
context-batch-job-launcher.xml의
<bean id="eGovBatchRunner" class="egovframework.rte.bat.sample.scheduler.BatchRunner_new">
부분도 맞게 고쳤습니다.
BatchRunner_new.java에서
createUniqueJobParameters()를 오버라이드 해도 오버라이드 한 내용이 반영되지 않고
부모 클래스(EgovBatchRunner)의 createUniqueJobParameters()가 실행되더군요.
그래서 addJobParameter()를 호출해서 BASE_DT 파라미터를 전달해야 겠는데,
어떻게 addJobParameter()를 호출할지 모르겠네요.
제가 잘못 접근하는것 같네요.
파라미터 전달하는 법 뒤져도 상세히 나오는 설명은 못찾겠네요.
도움 요청드립니다.
A
안녕하세요 프레임워크센터입니다.
일단
CONCAT(#{BASE_DT, jdbcType=VARCHAR},'000000') AS LST_CHG_PGM_ID
구문이 정상적으로 돌아가는지 확인이 필요할 것 같습니다.
일반 ibatis 프로젝트에서도 해당 구문을 사용하시는지요??
(BASE_DT 양쪽으로 #이 필요한 것으로 보입니다.)
concat하는 구문이 정확한지 확인이 필요하고, 또 정확하다면 실제나는 오류도 올려주시길 부탁드립니다.
수고하세요.
일단
CONCAT(#{BASE_DT, jdbcType=VARCHAR},'000000') AS LST_CHG_PGM_ID
구문이 정상적으로 돌아가는지 확인이 필요할 것 같습니다.
일반 ibatis 프로젝트에서도 해당 구문을 사용하시는지요??
(BASE_DT 양쪽으로 #이 필요한 것으로 보입니다.)
concat하는 구문이 정확한지 확인이 필요하고, 또 정확하다면 실제나는 오류도 올려주시길 부탁드립니다.
수고하세요.