스프링 배치에서 JpaCursorItemReader를 사용할 수 없는 문제와 관련하여 건의 드립니다.
- 작성자 :
- 박*민
- 작성일 :
- 2023-03-23 21:58:53
- 조회수 :
- 753
- 구분 :
- 실행환경 / 4.1
- 진행상태 :
- 완료
Q
안녕하세요. 항상 좋은 프레임워크를 제공해주셔서 감사합니다.
특히 4.x로 바뀌면서 스프링 버전과 이클립스 버전이 크게 업그레이드되어 좋습니다.
표준프레임워크 4.x부터 스프링 배치 4.3을 사용하는데,
스프링 배치는 4.3부터 JpaCursorItemReader를 제공합니다.
그런데 막상 JpaCursorItemReader 사용해보면, 실행 시 다음과 같은 오류가 발생합니다.
java.lang.NoSuchMethodError: 'java.util.stream.Stream javax.persistence.Query.getResultStream()'
at org.springframework.batch.item.database.JpaCursorItemReader.doOpen(JpaCursorItemReader.java:124) ~[spring-batch-infrastructure-4.3.6.jar:4.3.6]
저 오류가 발생하는 원인은 org.egovframe.rte.psl.dataaccess가 내부적으로 참조하고 있는 javaee-api 7.0 때문입니다.
JpaCursorItemReader는 JPA 2.2부터 지원되는데, javaee-api 7.0는 JPA 2.1까지만 포함합니다.
저는 pom.xml에 javaee-api를 8.0.1 지정해서 문제를 해결했는데,
호환성 관련해서 특별한 문제가 없다면 org.egovframe.rte.psl.dataaccess가 참조하는 javaee-api도 8.0.1로 업그레이드 하면 좋겠습니다.
검토 부탁드립니다!
특히 4.x로 바뀌면서 스프링 버전과 이클립스 버전이 크게 업그레이드되어 좋습니다.
표준프레임워크 4.x부터 스프링 배치 4.3을 사용하는데,
스프링 배치는 4.3부터 JpaCursorItemReader를 제공합니다.
그런데 막상 JpaCursorItemReader 사용해보면, 실행 시 다음과 같은 오류가 발생합니다.
java.lang.NoSuchMethodError: 'java.util.stream.Stream javax.persistence.Query.getResultStream()'
at org.springframework.batch.item.database.JpaCursorItemReader.doOpen(JpaCursorItemReader.java:124) ~[spring-batch-infrastructure-4.3.6.jar:4.3.6]
저 오류가 발생하는 원인은 org.egovframe.rte.psl.dataaccess가 내부적으로 참조하고 있는 javaee-api 7.0 때문입니다.
JpaCursorItemReader는 JPA 2.2부터 지원되는데, javaee-api 7.0는 JPA 2.1까지만 포함합니다.
저는 pom.xml에 javaee-api를 8.0.1 지정해서 문제를 해결했는데,
호환성 관련해서 특별한 문제가 없다면 org.egovframe.rte.psl.dataaccess가 참조하는 javaee-api도 8.0.1로 업그레이드 하면 좋겠습니다.
검토 부탁드립니다!
환경정보
-
- OS 정보 :
- 표준프레임워크 버전 :
- JDK(JRE) 정보 :
- WAS 정보 :
- DB 정보 :
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
알려주신 내용은 내부 검토를 거쳐서
가능하면 차기버전에서 지원될수 있도록 하겠습니다.
참고로
본 게시판을 통한 이슈 공유도 가능하고
다른 방법으로
GitHub를 통한 이슈 공유 및 코드 컨트리뷰션도 가능하오니
참고 부탁드립니다.
https://github.com/eGovFramework/
표준프레임워크에 관심을 가져주시고
제보해 주셔서 대단히 감사드립니다.
표준프레임워크센터입니다.
알려주신 내용은 내부 검토를 거쳐서
가능하면 차기버전에서 지원될수 있도록 하겠습니다.
참고로
본 게시판을 통한 이슈 공유도 가능하고
다른 방법으로
GitHub를 통한 이슈 공유 및 코드 컨트리뷰션도 가능하오니
참고 부탁드립니다.
https://github.com/eGovFramework/
표준프레임워크에 관심을 가져주시고
제보해 주셔서 대단히 감사드립니다.