그래서 세 개의 모델이 있습니다. Crag에는 하나 이상의 CragLocations가 있고 각 CragLocation에는 Location이 있습니다.JPA2 JPQL에 대한 critieria 쿼리를 선호합니까?
public List<Crag> getCragsWithGridRef() {
/**
* we want to query select c.* from crag c join CragLocation cl on c.id
* = cl.cragId join Location l on cl.locationId = l.id where
* len(l.gridReference)>1
*/
TypedQuery<Crag> query =
em.createQuery(
"SELECT c FROM Crag c JOIN c.CragLocations cl JOIN cl.location l where LENGTH(l.gridReference) > 1",
Crag.class);
return query.getResultList();
}
두뇌가 기준 쿼리를 처리 할 수 없기 때문에 주로 이렇게 쿼리합니다. 나는 그 (것)들을 볼 때 의미를 해석하기 위하여 고투한다.
기준 쿼리를 선호하는 성능이나 유지 관리 가능성 (또는 다른 이유로)이 있습니까? 그렇다면이 쿼리를 어떻게 표현 하시겠습니까?
한 가지 더. Criteria 쿼리를 작성하면 종종 생성 된 속편이 결코 생각하지 못했던 무언가가 될 것이라는 것을 알게 될 것입니다.하지만 작동합니다. 그거 꽤 멋지다. – carbontax