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)
}
}
따라서 다음과 같이 수정후 쿼리를 실행하니 정상적으로 값을 얻을 수 있었다.
감사합니다.