2015-02-18 2 views
0

У меня есть классы домена два:Grails где объединение запросов

class MyForm{ 
    .... 
    static hasMany = [items:MyFormItem] 
} 

class MyFormItem{ 
    String type 
    static belongsTo=[myForm:MyForm] 
} 

Я хочу запросить MyForm и найти все, где есть один тип элемента, но не другое.

Итак, я хочу найти все MyForm, где есть MyFormItem с типом «что-то», но он также не может иметь MyFormItem с типом «другого», например.

я пытался где положение, но это казалось просто захватить все:

MyForm.where{ 
    items{type=='something' && type!='other'} 
} 

Есть ли способ сделать это с помощью одного запроса с использованием GORM?

ответ

0

Я думаю, вы можете сделать это, используя метод withCriteria.

def results = MyForm.withCriteria { 
    items { 
     eq('type', 'something') 
    } 
    items { 
     ne('type', 'other') 
    } 
}