Sorting grails中带排序的分页

Sorting grails中带排序的分页,sorting,grails,pagination,Sorting,Grails,Pagination,我需要根据“参与者姓名”字段的排序显示列表。我正在使用下面的代码从域类获取数据并将其发送到我的gsp- def eventName = "${params.EventNameList}" if(!params.max) { params.max = 5 } def ParticipantRec = EventList.findAllByEvent_Name( eventName, params).sort { it.Participant_Name } 没有这样的错误,但记

我需要根据“参与者姓名”字段的排序显示列表。我正在使用下面的代码从域类获取数据并将其发送到我的gsp-

def eventName = "${params.EventNameList}"

if(!params.max)
{
    params.max = 5
}

def ParticipantRec = EventList.findAllByEvent_Name(
    eventName, params).sort { it.Participant_Name }
没有这样的错误,但记录不是按顺序排列的。而是根据记录范围对列表进行排序。例如,如果列表为-

["SUNNY","RAHUL",ANIL","BABY","AKSHAY","CAD","JOSEPH")
然后输出如下所示-

"ANIL","BABY","CAD","RAHUL","SUNNY"
然后

"AKSHAY","JOSEPH"

如果对finder调用的结果调用sort,并将max传递给它,则得到的是排序的第一个
max
条目。而是以与已传递的
max
相同的方式传递分页和排序信息。请参阅Grails在线文档中的示例:

def results = Book.findAllByTitle("The Shining",
              [max: 10, sort: "title", order: "desc", offset: 100])

除了Nathan提到的对环境事件有用的经过调整的dynamic finder方法之外,您还可以告诉域类根据映射闭包中的指定属性自动排序

例如,如果您总是希望EventList.list()返回按参与者名称排序的所有EventList对象的列表,则可以按如下方式设置映射闭包:

class EventList {

    String Participant_Name

    static mapping = {
        sort "Participant_Name"
    }
}
这样,只要查询EventList对象,就会返回按参与者名称排序的对象,除非另有规定。请注意,默认情况下,它们将按升序排序,在本例中,升序是字母顺序。如果您想自定义此行为,则需要按如下方式声明它

static mapping = {
    sort Participant_Name: "desc" // or 'asc' for ascending, which is the default
}

感谢您的输入。当我使用上述方法时,我得到如下错误-无法解析属性-即使属性存在,类EventList的参与者名称