230313 - Querydsl, Jooq

Cornchip·2023년 3월 13일
0

Today-I-Learned

목록 보기
25/28

목차
1. Querydsl
2. Jooq



1. Querydsl

1) base

  • "Unified Queries for Java. Querydsl is compact, safe and easy to learn."
  • 자바 코드(엔티티) -> DB 쿼리 생성 도구
  • HQL 생성 라이브러리
    • type-safety가 부족한 HQL(JPQL)의 대안
    • 읽기 어려운 Criteria API의 대안

2) Querydsl

  • 보다 readable한 쿼리 작성
  • 편리한 join
  • 스프링 Pageable과 매끄러운 연동

  • JPQL 작성 라이브러리
  • Spring Data JPA와 조합하여 보다 복잡한 쿼리를 type-safe하게 작성 가능
    • 커스텀 key join
    • 자유로운 query projection
  • Spring Data JPA Repository interface와 매끄럽게 연동
  • Spring Data에서 다양한 서포트 지원
    • QuerydslRepositorySupport: EntityManager를 노출하지 않고, Querydsl 필요 기능 직접 지원
    • QuerydslPredicateExecutor: Predicate을 이용한 dynamic select, Spring Data Rest 지원
    • QuerydslBinderCustomizer: 파라미터 바인딩의 세부 기능 조절을 지원


2. Jooq

  • DB schema -> Java class 생성 도구

    Querydsl:
    Java class -> DB schema

  • "jOOQ generates Java code from your database and lets you build type safe SQL queries through its fluent API."
  • ORM framework가 아님
  • "jOOQ is not a replacement for JPA"
    • SQL이 잘 어울리는 곳엔, Jooq가 잘 맞아요
    • Object Persistence가 잘 어울리는 곳엔, JPA가 잘 맞아요
  • Jooq says: "Jooq + JPA"
profile
cornchip

0개의 댓글