QueryDSL이란?
QueryDSL은 하이버네이트 쿼리 언어(HQL :Hibernate Querey Languge)의 쿼리 타입에 안전하게 생성 및 관리해 주는 프레임워크.
QueryDSL은 정적 타입을 이용하여 SQL과 같은 쿼리를 생성할수 있게 해 줌.
Spring boot와 Spring Data JPA를 함께 사용한다. 하지만 복잡한 쿼리, 동적쿼리를 구현하는 데 있어 한계가 있다. 이러한 문제점을 해결할 수 있는 것이 QueryDSL이다
QueryDSL등장하기 이전에는 Mybatis, JPQL, Criteria 등 문자열 형태로 쿼리문을 작성하여 컴파일 시에는 오류를 발견하는 것이 불가능했다
하지만 QueryDSL은 자바 코드로 SQL문을 작성할 수 있어 컴파일 시에 오류를 발생하여 잘못된 쿼리가 실행되는 것을 방지할 수 있다
JPQL
String username = "java";
String jpql = "select m from Member m where m.username = :username";
List<Member> result = em.createQuery(query, Member.class).getResultList();
QueryDSL
String username = "java";
List<Member> result = queryFactory
.select(member)
.from(member)
.where(usernameEq(username))
.fetch();
'Spring Boot' 카테고리의 다른 글
[Spring Boot] 연관관계 매핑 (@ManyToOne, @OneToMany, @ManyToMany, @OneToOne) (0) | 2024.06.28 |
---|---|
[Spring Boot] file업로드 (0) | 2024.05.21 |
[Spring Boot] @RestControllerAdvice를 이용한 Spring 예외처리 (0) | 2024.05.21 |
[Spring Boot] @Component 어노테이션 (0) | 2024.05.20 |
[Spring Boot] @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor (0) | 2024.05.15 |