querydsl(2)
-
QueryDSL의 BooleanExpression, Projections, Pagination
저번 글에 이어서 QueryDSL을 이용해서 이제 더 복잡한 쿼리들을 작성할 수 있게 되었다! 이런 상황을 가정해 보자.일정을 불러올때 검색 조건이 1. 제목을 이용한 검색2. 생성일을 기준으로 구간 검색3. 일정의 매니저 이름으로 검색 (일정은 생성 시에 작성한 유저로 자동등록된다 but 일정은 여러개의 유저를 가질 수 있다)와 같을 때 컨트롤러를 이렇게 작성할 수 있다.@GetMapping("/todos/querydsl")public ResponseEntity> getTodosByQueryDSL( @RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int size, @Req..
2025.03.14 -
QueryDSL
처음엔 JDBC Template 그 다음 MyBatis 그 다음 JPA로 쿼리를 작성해왔다.하지만 JPA의 메서드 작성규칙만으로는 어렵고 복잡한 쿼리를 작성하기 어렵다.그래서 JPQL로 쿼리를 더 자세하게 쓰기 시작했다.하지만 JPQL은 문자열로 쿼리를 작성한다는 단점이 있고 개발자가 오타를 낸다면 버그를 발생한다는 문제점이 있다.그 해결책으로 나온것이 바로 QueryDSL! QueryDSL이란?QueryDSL은 하이버네이트 쿼리 언어(HQL: Hibernate Query Language)의 쿼리를 타입에 안전하게 생성 및 관리해주는 프레임워크다.QueryDSL은 정적 타입을 이용하여 SQL과 같은 쿼리를 생성할 수 있게 해준다.자바 백엔드 기술은 Spring Boot와 Spring Data JPA를 함..
2025.03.14