본문 바로가기
LEARN/ERROR

[ERROR] java.lang.Object org.hibernate.ScrollableResults.get(int) (Querydsl transform)

by 아이엠제니 2024. 3. 9.

 


 

 

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
    <properties>
        <java.version>17</java.version>
    </properties>

 

스프링부트와 자바 버전은 위와 같다.

 

 

2024-03-09T20:11:37.815+09:00 ERROR 14104 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed: java.lang.NoSuchMethodError: 'java.lang.Object org.hibernate.ScrollableResults.get(int)'] with root cause

Querydsl 수정을 하고, 실행 후!

호출을 했는데, 에러가 떴다.

 

 

postman에서는 500에러가 떴다.

 

참고: https://laughcryrepeat.tistory.com/136

검색을 하닥 위 블로그를 참고하여 해결했다.

 

Spring Boot 3.x 버전에서는 2.x 버전과는 다르게 설정을 해줘야 한다고 한다.

정말 설정이 어려운 Querydsl...

 

 

 

👉 QuyryDslConfiguration.java 변경 전

package com.example.querydsltest.config;

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
public class QueryDslConfiguration {

    @PersistenceContext
    private EntityManager entityManager;

    @Bean
    public JPAQueryFactory jpaQueryFactory() {

        return new JPAQueryFactory(entityManager);
    }
}

 

 

 

👉 QuyryDslConfiguration.java 변경 후

package com.example.querydsltest.config;

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
public class QueryDslConfiguration {

    @PersistenceContext
    private EntityManager entityManager;

    @Bean
    public JPAQueryFactory jpaQueryFactory() {

        return new JPAQueryFactory(JPQLTemplates.DEFAULT,entityManager);
    }
}

`JPQLTemplates.DEFCAULT`를 추가한 후에 다시 호출해본다.

 

 

 

 

300x250