在 Grails/GORM 中定义默认排序顺序
假设我使用 GORM 定义了一个 User 对象。 每个用户可以有零个或多个 Login:s。 每个登录都有一个时间戳。 检索 user.logins 时,我希望根据 login.date 的值对登录进行排序。 实现这一目标的正确 Grails 方法是什么?
示例:我希望以下代码按升序列出所有用户的登录信息。
<g:each var="login" in="${user.logins}">
<tr>
<td>${login.date}</td>
</tr>
</g:each>
这些是引用的类:
class User {
...
def hasMany = [logins: Login]
static fetchMode = [logins: "eager"]
}
class Login {
Date date
...
def belongsTo = [User]
}
我正在运行 Grails 1.0.4,这是最新的稳定版本。
Let's say I have definied a User object using GORM. Each user can have zero or more Login:s. Each Login has a timestamp. When retrieving user.logins I want the logins to be sorted based on the value of login.date. What is the correct Grails way to achieve this?
Example: I want the following code to list all the user's logins in ascending order.
<g:each var="login" in="${user.logins}">
<tr>
<td>${login.date}</td>
</tr>
</g:each>
These are the referenced classes:
class User {
...
def hasMany = [logins: Login]
static fetchMode = [logins: "eager"]
}
class Login {
Date date
...
def belongsTo = [User]
}
I'm running Grails 1.0.4 which is the latest stable release.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
他们在参考指南(第 5 节)的 GORM 页面上展示了如何执行此操作。 您想要的部分位于该文档底部附近。 他们有两个简单的例子:
他们还有一个关联排序的例子:
They show how to do this on the GORM page in the reference guide (section 5). The bit you want is near the bottom of that document is the section you want. They have two simple examples:
They also have an example of sorting on an association:
只需让登录类实现 Comparable 接口:
并将关系声明为 SortedSet:
Just make the Login Class implement the Comparable interface:
and declare the relation to be a SortedSet:
Grails/GORM 中默认排序顺序的处理似乎在 Grails 1.1 中得到了极大的简化:
The handling of default sort order in Grails/GORM seems to have been radically simplified in Grails 1.1: