Criteria API
Criteria API는 JPQL(Java™ Persistence Query Language) 조회를 위한 문자열 빌드에 대한 대안으로서, Java 오브젝트를 갖는 조회 빌드를 위한 API입니다.
Criteria API는 런타임 시 동적으로 조회 빌드를 지원하며 컴파일러가 검증할 수 있는 유형 안전 조회를 빌드하는 기능도 지원합니다. JPQL 조회의 정확성은 컴파일러에 의해 검증될 수 없으며, 테스트 중에 런타임에 검증되어야 합니다.
다음은 5년 미만의 근속연수를 갖는 직원의 목록을 리턴하는
샘플 JPQL 조회입니다.
SELECT e FROM Employee e WHERE e.serviceyears < 5
다음은
동등한 Criteria 조회의 샘플입니다. QueryBuilder qb = emf.getQueryBuilder();
CriteriaQuery q = qb.create(Employee.class);
Root e = q.from(Employee.class);
q.where(qb.lt(e.get(Employee_.serviceyears), 5));
TypedQuery tq = em.createQuery(q);
List result = q.getResultList();
참고: Employee_는
Employee 클래스의 메타 모델입니다.
다음 두 개의 중요한 기능은 JPQL부터의 개선입니다.
- Criteria API는 JPQL을 통해서는 불가능한 조회를 표현할 수 있습니다. 더 자세한 정보는 developerWorks® 문서인 JPA 2.0에서의 동적, 유형 안전 조회에 있는 "편집 가능한 데이터 저장소 표현식" 섹션을 참조하십시오.
- CriteriaQuery는 프로그래밍 방식으로 편집할 수 있습니다. 자세한 정보는 developerWorks 문서인 JPA 2.0에서의 동적, 유형 안전 조회에 있는 "편집 가능한 조회" 섹션을 참조하십시오.