订单不适用于 Grails 中的标准
Order is not working with criteria in Grails
我刚刚开始使用 groovy 和 grails,对 Order 子句与标准有些混淆。
下面是我的代码,
def order = "rollNumber"
def orderBy = "asc"
studentListCriteria = Students.createCriteria()
int max = 6
int offset = params?.offset ? Integer.valueOf(params.offset) : 0
def studentList = studentListCriteria.list(max: max, offset: offset) {
and {
eq("isActive", Boolean.TRUE )
}
order(order,orderBy)
}
执行时抛出以下错误。
groovy.lang.MissingMethodExceptionMessageNo signature of method: java.lang.String.call() is applicable for argument types: (java.lang.String, java.lang.String) values: [rollNumber, asc] Possible solutions: wait(), any(), tr(java.lang.String, java.lang.String), trim(), find(), size()
谁能告诉我我做错了什么??
看起来您的代码中在此条件之前有一个名称为 order
的变量。更改它的名称,例如
String orderBy = 'someThing'
....
def studentList = studentListCriteria.list(max: max, offset: offset) {
....
}
请检查以下代码,此处不能使用关键字。
def orderParameter = "rollNumber"//Change name of variable.
def orderByParameter = "asc"
studentListCriteria = Students.createCriteria()
int max = 6
int offset = params?.offset ? Integer.valueOf(params.offset) : 0
def studentList = studentListCriteria.list(max: max, offset: offset) {
and {
eq("isActive", Boolean.TRUE )
}
order(orderParameter,orderByParameter)
}
在这里,您使用 order
作为变量。请更改它的名称,一切顺利。
我刚刚开始使用 groovy 和 grails,对 Order 子句与标准有些混淆。
下面是我的代码,
def order = "rollNumber"
def orderBy = "asc"
studentListCriteria = Students.createCriteria()
int max = 6
int offset = params?.offset ? Integer.valueOf(params.offset) : 0
def studentList = studentListCriteria.list(max: max, offset: offset) {
and {
eq("isActive", Boolean.TRUE )
}
order(order,orderBy)
}
执行时抛出以下错误。
groovy.lang.MissingMethodExceptionMessageNo signature of method: java.lang.String.call() is applicable for argument types: (java.lang.String, java.lang.String) values: [rollNumber, asc] Possible solutions: wait(), any(), tr(java.lang.String, java.lang.String), trim(), find(), size()
谁能告诉我我做错了什么??
看起来您的代码中在此条件之前有一个名称为 order
的变量。更改它的名称,例如
String orderBy = 'someThing'
....
def studentList = studentListCriteria.list(max: max, offset: offset) {
....
}
请检查以下代码,此处不能使用关键字。
def orderParameter = "rollNumber"//Change name of variable.
def orderByParameter = "asc"
studentListCriteria = Students.createCriteria()
int max = 6
int offset = params?.offset ? Integer.valueOf(params.offset) : 0
def studentList = studentListCriteria.list(max: max, offset: offset) {
and {
eq("isActive", Boolean.TRUE )
}
order(orderParameter,orderByParameter)
}
在这里,您使用 order
作为变量。请更改它的名称,一切顺利。