我有以下场景(域类)
class Request {
String title
List statusUpdates
static hasMany = [statusUpdates: StatusUpdate]
}
和
class StatusUpdate {
Date dateCreated
String statusFrom
String statusTo
String notes
static belongsTo = Request
}
我目前正在使用createCriteria
来实现Request的过滤和基本排序。
现在,我希望从最近更新的Request
开始获取列表(按dateCreated
last
的字段StatusUpdate
的值排序Request
)
任何提示?
答案 0 :(得分:1)
假设每个请求至少有一个StatusUpdate并略微更改belongsTo声明,您可以转向另一个方向:
class StatusUpdate {
Date dateCreated
String statusFrom
String statusTo
String notes
static belongsTo = [req: Request] // I assume that naming the field "request" would cause whole bunch of weird problems, therefore "req"
}
StatusUpdate.createCriteria().list() {
req {
// your criteria for requests filtering
}
projections {
groupProperty 'req', 'reqAlias'
max 'dateCreated', 'maxDateCreatedAlias'
}
order 'maxDateCreatedAlias', 'desc'
}.collect { it[0] }
答案 1 :(得分:0)
您可以使用Comparator或Comparable接口。 这里有一个很好的例子 link