根据链接表中的字符串对grails列表进行排序
我有两个域,一个存储到另一个域的链接,就像这样(我删掉了所有其他域以消除噪音):- 这用于:-根据链接表中的字符串对grails列表进行排序,grails,Grails,我有两个域,一个存储到另一个域的链接,就像这样(我删掉了所有其他域以消除噪音):- 这用于:- class TestExecQueue { static constraints = { testscenarioid() myPriority(inList:[0,1,2,3,4], blank:false) } static mapping = { table "test_exec_queue" version false
class TestExecQueue {
static constraints = {
testscenarioid()
myPriority(inList:[0,1,2,3,4], blank:false)
}
static mapping = {
table "test_exec_queue"
version false
columns{
id column:"test_exec_queue_id"
testscenarioid column:"test_scenario_id"
myPriority column:"Priority"
}
}
TestScenario testscenarioid
Integer myPriority
}
我的测试问卷中有一个列表,如下所示:-
def list(Integer max) {
params.max = 10000
[testExecQueueInstanceList: TestExecQueue.list(params), testExecQueueInstanceTotal: TestExecQueue.count()]
}
但我想做的是返回按testscenariodesc值排序的结果(而不是testscenarioID的数值)。这可能吗
我试过这个:-
[testExecQueueInstanceList: TestExecQueue.list(params, sort: "testscenarioid", order: "desc"), testExecQueueInstanceTotal: TestExecQueue.count()]
但当我转到页面时,我得到以下错误:
No signature of method: testautomation.TestExecQueue.list() is applicable for argument types: (java.util.LinkedHashMap, org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: [[sort:testscenarioid, order:desc], [action:list, ...]] Possible solutions: list(), last(), list(java.util.Map), first(), last(java.lang.String), last(java.util.Map)
我做错了什么?谢谢你的建议!:)list()方法接受sort
和order
参数。详细信息,请参阅。比如说
def results = myDomain.list([max: 10, sort: 'myColumn', order: 'asc'])
或者,您可以在域上指定默认排序顺序。例如:
class MyClass {
String myColumn
static mapping = {
sort 'myColumn'
}
}
已尝试排序,但似乎不起作用,已使用代码示例进行更新在代码中,您需要添加到params映射,而不是将另一个参数传递给list方法。e、 g.在调用list()之前,使用params.sort='testscenarioid'您的意思是只使用
params.max=10000 params.sort='testscenarioid'[testexecqueinstancelist:TestExecQueue.list(params),testexecqueinstancetotal:TestExecQueue.count()]
这似乎没有任何作用(它将根据数字ID值或它链接并返回的等效字符串值进行排序?)
class MyClass {
String myColumn
static mapping = {
sort 'myColumn'
}
}