2011-08-22 3 views
1

nullable과 관련된 자식 클래스가있는 Grails 기준을 가지고 있습니다. 모든 결과를 얻으려고합니다. 심지어 아이들은 null이지만, 기준은 INNER JOIN으로 실행됩니다. LEFT JOIN으로 실행하려면 어떻게해야합니까?Grails 레퍼런스를 왼쪽 결합으로 실행하려면 어떻게해야합니까?

Grails의 버전 (최신) 1.3.7입니다, 쿼리 createCriteria(). 목록 HQL 문을 사용할

+0

Grails의 버전은 무엇입니까? 또한 쿼리를 어떻게 실행하고 있습니까? 동적 검색기를 사용 하시겠습니까? createCriteria? executeQuery? –

+0

Grails 버전이 1.3.7 (가장 최근)이고 createCriteria()를 통해 쿼리가 실행되고 있습니다. 목록 – ArmlessJohn

+0

귀하의 계정이 병합되었으므로 귀하의 질문에 다시 통합되었습니다. – Kev

답변

1

시도를 통해 실행되고있다. 다음과 같이 http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html

HQL 문을 수행 할 수 있습니다 : DomainClass.executeQuery를 ("선택 ...")

+1

다른 비즈니스 요구 사항 때문에이 기준을 사용해야합니다. 나는'createAlias ​​("childClass", "child", CriteriaSpecification.LEFT_JOIN)'을 사용하려했지만 [이 Grails 버그] (http://jira.grails.org/browse/GRAILS-7324)를 만났다고 생각합니다. 아직도 내 머리카락을 당겨. – ArmlessJohn

+0

당신은 조인 메커니즘에 대한 더 많은 제어권을 가지고 있기 때문에 hql로 할 것을 권장합니다. – hitty5

1

를 질문은 오래되어 개선의 많은이에서 수행 한 바와 같이 왼쪽에 대한 참조 합류했다. 다음은 나 같은 사람을 찾는 데 도움이 될 것입니다. 다음은 컬렉션이있는 조건 쿼리 내부의 복잡한 {} 및/또는 {} 블록에서도 작동합니다. 예. 전문은 컬렉션입니다.

List users = User.createCriteria().list(){ 
        createAlias('specialities', 'sp', CriteriaSpecification.LEFT_JOIN) 

    ilike("sp.name","%"+trimPhrase+"%") 
} 
관련 문제