egov Spring batch에서 PagingItemReader사용시 주의점인데요.
쿼리에 페이징관련 설정이 추가되지 않으면 한참동안
무한에 가깝게 반복이 되게 되니 주의가 필요합니다.
query쪽 xml에서 페이징관련 맵핑 변수를 설정해야 합니다.
마이바티스의경우 #{_page} , #{_pagesize} , #{_skiprows}를 설정해 주어야 합니다.
참고로 VO에 정의가 없어도 자동으로 주입이 됩니다.
* HSQL (메모리 DB의 경우)
<select id="selectEmpList" parameterType="empVO" resultMap="empResult">
<![CDATA[
select EMP_NO, EMP_NAME, JOB, MGR, HIRE_DATE, SAL, COMM, DEPT_NO
from EMP
where 1 = 1
LIMIT #{_pagesize} OFFSET #{_skiprows} -- HSQL LIMIT OFFSET
* Mysql의 경우 (iBatis 사용)
<select id="getPagedCustomerCredits" resultMap="customerCreditResult">
select id, name, credit from customer order by id asc LIMIT #_skiprows#, #_pagesize#
</select>
* Oracle의 경우 (iBatis 사용)
<select id="getPagedCustomerCredits" resultMap="customerCreditResult">
select * from (
select * from (
select t.id, t.name, t.credit, ROWNUM ROWNUM_ from customer t order by id
)) where ROWNUM_ <![CDATA[ > ]]> ( #_page# * #_pagesize# )
) where ROWNUM <![CDATA[ <= ]]> #_pagesize#
</select>
'JAVA·Spring' 카테고리의 다른 글
Spring Batch에서 ItemReadListener가 걸리지 않을 때 (0) | 2023.04.03 |
---|---|
Kakao Login API Bad client credentials(KOE010) 해결하기 (0) | 2022.08.29 |
maven Repository - Failed to transfer ~~~~ Central 501 HTTPS Required (0) | 2020.02.03 |
특정 포트 점유한 프로그램 찾고 실행중인 Java 어플 죽이기 - Windows (Kill Process) (0) | 2019.03.12 |
Eclipse Neon에서 빈설정 xml파일에서 실제는 정상인데 오류X표시가 보여질때 처리방법 (0) | 2018.11.09 |