inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

spring boot 3.x 업그레이드 후 querydsl transform 함수 작동이 안됩니다.

해결된 질문

2153

최원경

작성한 질문수 3

0

안녕하세요.

spring boot 3.1.0 으로 업그레이드하여 hibernate 6.2.2 버전을 사용하고 있습니다.

Querydsl 로 개발 도중 간단한 select 문은 정상적으로 작동이 되었는데,transform(groupBy().list()) 함수를 사용하니 에러가 발생하였습니다.

java.lang.NoSuchMethodError: 'java.lang.Object org.hibernate.ScrollableResults.get(int)'

	at com.querydsl.jpa.ScrollableResultsIterator.next(ScrollableResultsIterator.java:70)
	at com.querydsl.core.group.GroupByMap.transform(GroupByMap.java:57)
	at com.querydsl.core.group.GroupByMap.transform(GroupByMap.java:35)
	at com.querydsl.core.support.FetchableQueryBase.transform(FetchableQueryBase.java:55)

 

버전 문제인 것 같아 spring boot 2.x 버전으로 내리고 hibernate도 5.x 버전으로 내리니 정상 작동하더라구요...
spring boot 3.x 로 업그레이드하면서 transform() 함수가 제대로 동작을 안 하는 걸까요?

 

 

springboot querydsl transform

답변 2

0

마루

@Configuration

class QueryDslConfig(

@PersistenceContext

private val mainEntityManager: EntityManager,

) {

@Bean

fun jpaQueryFactory(): JPAQueryFactory {

return JPAQueryFactory(JPQLTemplates.DEFAULT, mainEntityManager)

}

}

 

이렇게 바꿔보세요.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 입니다.

오류 메시지를 보면 ‘java.lang.NoSuchMethodError’ 라는 메시지가 나와 java 버전에 따른 메서드 호환성 문제일 가능성이 있습니다. 하지만 일반적으로 spring boot 3.x 로 업그레이드하면서 발생한 문제는 아닙니다.

오류가 발생한 메소드인 org.hibernate.ScrollableResults.get(int) 를 찾을 수 없다고 나오므로, 찾을 수 없다는 뜻입니다. 런타임시 해당 메소드가 없는 경우, 빌드한 코드와 라이브러리 간에 호환성 문제가 발생했다는 것입니다.

따라서, 변화를 주는 라이브러리의 버전을 바꾸거나 스프링 부트 버전을 다시 내릴 필요는 없습니다. Hibernate 버전과 Querydsl 버전 간의 호환성 문제가 있을 가능성이 있습니다. Hibernate 버전과 Querydsl 버전을 호환되는 버전으로 맞춰서 사용하시는 것이 좋을 것 같습니다.

해당 오류의 원인을 찾기 위해서는 더 자세한 로그 메시지나 실행 환경에 대한 정보가 필요하며, 더불어 작성하신 코드와 쿼리를 보고 정확한 원인을 파악할 수 있습니다.

추가적으로 Hibernate 버전이 변경되면서 라이브러리 종속성이 변경되기 때문에, 변경된 라이브러리 또한 적용해보시는 것도 도움이 될 수 있습니다.

과정에서 잘못된 내용이나 오류가 발생한다면 인프런 커뮤니티에 다시 문의해주시기 바랍니다.

감사합니다.

RepositoryTest의 패키지 위치가 domain인 이유

0

36

2

SpringBoot 4.X에서의 Querydsl 설정

0

96

2

REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!

0

31

1

update()에 사용하는 setter 질문드립니다.

0

49

1

SQL 중심적 개발의 문제점에 대한 질문

0

75

1

혹시 Containing 을 안쓰신 이유가 있을까요?

0

86

2

[공유] 스프링부트 4.x 버전 mybatis 연동

0

183

1

@repository 어노테이션

0

91

3

ItemService

0

59

1

논리 커밋, 물리 커밋 질문드립니다.

0

54

1

내부 트랜잭션 커밋은 필수인가요?

0

57

1

프록시 커넥션 객체를 반환할 때 생성하는건가요?

0

55

1

Transaction readOnly 성능 개선 (김영한님의 대한 감사인사)

2

180

2

Kotlin과 Java의 현업에서의 활용

0

127

2

여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요

1

71

1

오타 제보 드립니다.

0

73

2

@EventListener(ApplicationReadyEvent.class) 관련

0

89

1

트랜잭션 동기화 매니저와 데이터 소스

0

77

1

Run As Intellij 로 변경시 Q타입 import 불가

0

89

1

저는 맥북인데 이건 그냥 윈도우용으로만 수업하시네요

0

53

1

DB 관련 강의 개설 계획은 없으신건가요?

0

133

2

물리 트랜잭션 과 논리트랜잭션 용어를 맞게 이해한걸까요

0

94

1

스프링 3 버전 이상 rollbackFor 변경된듯요

1

113

1

트랜잭션 전파 질문.

0

87

1