Grails Создать критерий для подзапроса - PullRequest
0 голосов
/ 28 февраля 2010

Как использовать createCriteria для подзапроса. Мой HQL такой:

def lists = List.executeQuery ("ИЗ списка cl ГДЕ cl.brand_id в (ВЫБЕРИТЕ b.id ОТ Бренда b ГДЕ cl.brand_id = b.id И b.brand_name rLIKE '^ [0123456789]. *')" )

Скажите, пожалуйста, как мы можем написать это, используя Createcriteria ??

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 01 марта 2010

При запросе свойства объекта домена необходимо создать блок в критериях с именем свойства. Что-то вроде:

def criteria = List.createCriteria(); 
def results = criteria {
    brand {
        rlike("name", "^[0123456789].*") 
    }
}

См. Также раздел «Запрос ассоциаций» в документе Grails GORM для документов

0 голосов
/ 01 марта 2010

Похоже, что Hibernate не поддерживает функции rlike или regexp (см. http://opensource.atlassian.com/projects/hibernate/browse/HHH-3404) Но Граальс делает!

Для этого вам нужно использовать createCriteria (а не executeQuery) На основании этого обсуждения http://n4.nabble.com/Using-rlike-in-a-gorm-query-td1391934.html и http://jira.codehaus.org/browse/GRAILS-3481, ваше решение будет:

def c = List.createCriteria(); 
results = c { 
        rlike("name", "^[0123456789].*") 
} 

Внимание: может работать только на MySQL и Oracle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...