Develope/DataBase

[JPA] 객체지향 쿼리 언어

고로이 2021. 9. 26. 16:58
반응형

1. JPQL

 

  •  가장 단순한 조회 방법
    • EntityManager.find()
    • 객체 그래프 탐색 : a.getB().getC()
  • JPA를 사용하면 엔티티 객체를 중심으로 개발
  • 검색 시 테이블이 아닌 엔티티 객체를 대상으로 검색해야 함
  • 검색 조건이 포함된 SQL이 필요
  • JPA는 SQL 을 추상화 한 JPQL이라는 객체지향 쿼리 언어 제공
  • SQL과 문법이 유사하지만 SQL은 아님
  • JPQL은 엔티티 대상 SQL은 DB대상 

em.createQuery(

    “SELECT m FROM Member m WHERE m.USERNAME like ‘%EB%'"

    , Member.class

).getResultList();

 

 

2. Creiteria

  • 자바 코드로 JPQL 을 작성 가능
  • JPQL 빌더 역할
  • JPA 공식 기능
  • 단점 : 너무 복잡하고 실용성이 없어 유지보수 어려움
  • QueryDSL 사용 권장

 

3. QueryDSL

  • 문자가 아닌 자바코드로 JPQL 작성 가능
  • JPQL 빌더 역할
  • 컴파일 시점에 문법 오류를 찾을 수 있음
  • 단순하고 쉬움
  • 실무 사용 권장
반응형

'Develope > DataBase' 카테고리의 다른 글

[JPA] 엔티티 매핑  (0) 2021.08.17
[JPA] 영속성 컨텍스트  (0) 2021.08.12
[JPA] Spring + MariaDB + JPA 환경셋팅  (0) 2021.06.23
[JPA] 1-3. ORM 이란? JPA 소개  (0) 2021.05.30
[JPA] SQL을 직접 다룰 때 발생하는 문제점  (0) 2021.05.29