Grails findAllWhere和列表获取

Grails findAllWhere和列表获取,grails,gorm,Grails,Gorm,因此,我有如下域类: class Enrollment { Course course Date date User user static constraints = { } } 在我的控制器中,我有以下操作: def persons = Enrollment.list(fetch :[user : "a"]) render persons 我试图只获取一个名为“a”的用户及其对应的映射。但是它显示了所有..我尝试了FindAll

因此,我有如下域类:

class Enrollment {
    Course course
    Date date
    User user
    static constraints = {

    }
}
在我的控制器中,我有以下操作:

def persons =  Enrollment.list(fetch :[user : "a"])
        render persons
我试图只获取一个名为“a”的用户及其对应的映射。但是它显示了所有..我尝试了
FindAllWhere
但是抛出了一个错误

No such property: user for class: tester.EnrollmentController

我假设
User
类具有
name
属性

那么:

def user = User.findByName("a")
def persons = user ? Enrollment.findAllByUser(user) : []
在此假设您可以找到唯一的用户(名称可能不够唯一),否则我会执行以下操作:

def persons = Enrollment.createCriteria().list{
    user {
       eq('name', "a")
    }
}

我尝试获取和读取单个用户,但无法进行比较。
Enrollment.list(…)
部分完全错误:域类上的
list
方法采用分页和排序参数,而不是过滤器。有效参数可能是例如
Enrollment.list(最大值:20,偏移量:2,排序:“日期”,顺序:“desc”)
它不起作用。每次我使用find,它都会给我一个错误。FindWhere会完全解决这个问题,但我不知道为什么会出现这些错误扫描您至少执行
Enrollment.list()
User.list()
?当我尝试时:def persons=Enrollment.createCriteria().list{User{eq('name',“a”)}它在def persons=Enrollment.createCriteria().list{您是否在条件块上方的某个位置定义了
user
变量?Groovy似乎希望在该变量上运行
{eq('name','a')}
。尝试重命名它或在闭包中使用
delegate.user{…}