728x90
반응형
- Criteria 란 ?
- Criteria 는 JPQL 의 작성을 도와주는 빌더 클래스이다. 문자열로 JPQL 을 작성하면 런타임이 되어야 문법 오류를 알 수 있지만 Criteria 는 자바 코드 기반이기 때문에 안전하게 JPQL 을 작성할 수 있다.
- 하지만 코드가 복잡해서 직관적으로 이해하기 힘들다는 의견도 있다. 대부분의 내용이 JPQL 과 중복되므로 사용법위주로 살펴보자.
- Criteria 의 장점
- 문자가 아닌 query,select(m).shere(...) 처럼 프로그래밍 코드로 JPQL 을 사용할 수 있다.
- 컴파일 시점에 오류를 발견할 수 있다.
- IDE 를 사용하면 코드 자동 완성을 지원한다.
- 동적 쿼리를 작성하기 편하다.
- Criteria 의 단점
- 이것만 보면 Criteria가 가진 장점이 많지만 모든 장점을 상쇄할 정도로 복잡하고 장황합니다.
- 코드가 길어질수록 사용하기 불편하다.
- 가독성이 떨어진다.
- Criteria 사용법
- Criteria 쿼리 빌더
CriteriaBuilder cb = em.getCriteriaBuilder();
- Criteria 쿼리 빌더
CriteriaBuilder cb = em.getCriteriaBuilder();
- Criteria 생성, 반환 타입 지정
CriteriaQuery<Member> cq = cb.createQuery(Member.class);
- FROM 절
Root<Member> m = cq.from(Member.class);
- SELECT 절
cq.select(m);
- 조회
TypedQuery<Member> query = em.createQuery(cq);
List<Member> members = query.getResultList();
728x90
반응형
'개발중 > Java Persistence API (JPA)' 카테고리의 다른 글
[JPA ERROR] No qualifying bean of type 'org.springframework.transaction.TransactionManager' available (0) | 2023.03.15 |
---|---|
[JPA] 다른 컬럼명을 참조하는 연관관계에 대한 궁굼점 (referencedColumnName) (0) | 2023.02.13 |
JPA ( Java Persistence API ) Transaction (1) | 2023.01.13 |
JPA ( Java Persistence API ) (0) | 2023.01.10 |
[Spring] JPA Specification 를 이용해 검색 API 개발하기 ✍ (0) | 2022.12.05 |