[JPA] 객체지향 쿼리 언어

[JPA] 객체지향 쿼리 언어

반응형

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 빌더 역할

컴파일 시점에 문법 오류를 찾을 수 있음

단순하고 쉬움

실무 사용 권장

반응형

from http://vivi-world.tistory.com/143 by ccl(A) rewrite - 2021-09-26 17:27:10