Как сделать так, чтобы критерии Грааля выполнялись как левое соединение? - PullRequest
1 голос
/ 23 августа 2011

У меня есть критерии Grails, которые связывают классы детей, которые можно обнулять. Мне нужно получить все результаты, даже те, у которых нет детей, но критерии выполняются с помощью INNER JOIN. Как заставить его исполниться с помощью LEFT JOIN?

Версия Grails 1.3.7 (самая последняя), запрос выполняется через createCriteria (). List

Ответы [ 2 ]

1 голос
/ 08 декабря 2015

Поскольку вопрос старый, и в этом направлении сделано много улучшений.Следующее поможет кому-то, ищущему, как я. Следование работает даже со сложными блоками и {} и или {} внутри запроса критериев с коллекциями.напримерспециальностей это коллекция.

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

    ilike("sp.name","%"+trimPhrase+"%")
}
1 голос
/ 23 августа 2011

попробуйте использовать оператор hql.для левых объединений см .: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html

Операторы hql могут быть выполнены следующим образом: DomainClass.executeQuery ("select from ....")

...