2011-05-02 8 views
2

이것은 this 질문의 확장입니다.HQL : 자식 개체가 특정 속성 값을 포함하는 개체 찾기

SQL 대신 HQL을 사용하여 어떻게 동일한 작업을 수행 할 수 있습니까?

public class Dog { 
    private Long id; 
    private Set<DogColor> colors; 
    private String name; 
    private String size; 

    ... 
} 

public class DogColor { 
    private Long id; 
    private String color; 

    ... 
} 

가 그럼 난 내 HQL 조금 뭔가를보고 싶어 :

하는의 내 엔티티 클래스는 다음과 같이 가정 해 봅시다 (즉, 검은 색과 흰색 두 색상이있는 모든 개를 찾을 다른 색상을 가질 수) 예 :

from dog where dog.colors contains ("black", "white") 

dog.colors는 색상 문자열이 아니고 객체이므로 분명히 의사 코드입니다.

물론

답변

3
Select d from dog d join d.colors o where o.color in ("black","white") 

당신은 바로 매핑

+0

감사 설정이 필요합니다! 조인에서 부모의 자식을 사용하고 'on'대신 'where'를 사용하면 잘못 된 부분이됩니다. – digiarnie

관련 문제