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{…}
。