04. Querydsl 설정 및 사용법(최신 버전)

유승욱·2024년 5월 10일
0

Spring&React Project

목록 보기
4/9

build.gradle

build.gradle에 다음의 코드를 추가해준다.

dependencies {
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}:jakarta"
	annotationProcessor(
			"jakarta.persistence:jakarta.persistence-api",
			"jakarta.annotation:jakarta.annotation-api",
			"com.querydsl:querydsl-apt:${queryDslVersion}:jakarta")
}

이후 compile.java를 실행해준다.

그러면 Qdomain이 생기게 되고 세팅이 완료된다.

Querydsl 사용법

TodoSearch

public interface TodoSearch {

    Page<Todo> search1();
}

TodoRepository

public interface TodoRepository extends JpaRepository<Todo, Long>, TodoSearch {

}

TodoSearchImpl
인터페이스의 구현체 클래스의 이름은 '인터페이스+Impl' 형식을 무조건 따라야한다.

@Log4j2
public class TodoSearchImpl extends QuerydslRepositorySupport implements TodoSearch {

    public TodoSearchImpl() {
        super(Todo.class);
    }

    @Override
    public Page<Todo> search1() {
        log.info("search1...............");

        QTodo todo = QTodo.todo;

        JPQLQuery<Todo> query = from(todo);

        query.where(todo.title.contains("1"));

        Pageable pageable = PageRequest.of(1, 10, Sort.by("tno").descending());

        this.getQuerydsl().applyPagination(pageable, query);

        query.fetch();  // 목록 데이터

        query.fetchCount();

        return null;
    }
}

querydsl을 사용하기 위해선 Qtodo처럼 Qdomain을 생성해준 후 JPQLQuery를 통해 쿼리문을 작성해준다.

0개의 댓글