QueryDSL transform 에러

정명진·2023년 6월 28일
1
post-custom-banner

querydsl로 서브쿼리를 포함한 DTO를 반환하는 쿼리를 작성중

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

해당 오류가 발생했다. 원인을 찾아보니 spring boot 3.x 버전부터 transform을 사용할 수 없다고한다.

이를 해결하기 위해서는 QueryDslConfig를 Default 모드로 변경 적용을 해주면 된다고 한다.

import com.querydsl.jpa.JPQLTemplates
import com.querydsl.jpa.impl.JPAQueryFactory
import jakarta.persistence.EntityManager
import jakarta.persistence.PersistenceContext
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration

@Configuration
class QueryDslConfig {
    @PersistenceContext
    lateinit var entityManager: EntityManager

    @Bean
    fun jpaQueryFactory(): JPAQueryFactory {
        return JPAQueryFactory(JPQLTemplates.DEFAULT, entityManager)
    }
}

따라서 다음과 같이 수정후 쿼리를 실행하니 정상적으로 값을 얻을 수 있었다.

profile
개발자로 입사했지만 정체성을 잃어가는중... 다시 준비 시작이다..
post-custom-banner

1개의 댓글

comment-user-thumbnail
2024년 11월 1일

감사합니다.

답글 달기