我有两个域类:

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

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

我想查询MyForm并查找所有存在一种类型的项目但没有另一种类型的项目。

因此,我想找到所有MyForm,其中有一个类型为“something”的MyFormItem,但是它不能同时具有类型为“other”的MyFormItem。

我正在尝试一个where子句,但这似乎可以捕获一切:
MyForm.where{
    items{type=='something' && type!='other'}
}

有没有一种方法可以利用GORM进行一次查询?

最佳答案

我认为您可以使用withCriteria方法执行此操作。

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

关于hibernate - 查询关联所在的Grails,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28596098/

10-12 00:02