Grails createCriteria parent 最后 child
Grails createCriteria parent with last child
如何只读取 lastChild 和 parentObject
Parent {
hasMany[children: Child]
}
这是我的代码
Parent.withCriteria() {
eq("active", true)
children {
order("dateCreated", "desc")
maxResults(1)
}
}
但是没有用。我如何阅读 Parent 最近更新的 child
GORM/Hibernate 中的 hasMany
没有过滤器语义并且总是 returns 全部引用 objects.
在 straight-forwad 情况下,您必须触发 2 个查询:查找所有 Parents
和查找所有最后更新的 children.
另一种选择是反转搜索逻辑:寻找 children 1st,将它们按 lastUpdated
分组,然后拉出它们的 parents。当然,你必须有一个从Child到Parent的back-ref:
class Child {
static belongsTo = [ parent:Parent ]
}
那么查询可能类似于:
Child.withCriteria{
projections{
groupProperty 'id'
max 'lastUpdated'
}
parent{
eq "active", true
}
}
如何只读取 lastChild 和 parentObject
Parent {
hasMany[children: Child]
}
这是我的代码
Parent.withCriteria() {
eq("active", true)
children {
order("dateCreated", "desc")
maxResults(1)
}
}
但是没有用。我如何阅读 Parent 最近更新的 child
hasMany
没有过滤器语义并且总是 returns 全部引用 objects.
在 straight-forwad 情况下,您必须触发 2 个查询:查找所有 Parents
和查找所有最后更新的 children.
另一种选择是反转搜索逻辑:寻找 children 1st,将它们按 lastUpdated
分组,然后拉出它们的 parents。当然,你必须有一个从Child到Parent的back-ref:
class Child {
static belongsTo = [ parent:Parent ]
}
那么查询可能类似于:
Child.withCriteria{
projections{
groupProperty 'id'
max 'lastUpdated'
}
parent{
eq "active", true
}
}