我有以下域类:
class ParentClass {
String myProperty
static hasMany = [ childClasses : ChildClass]
}
class ChildClass {
Date birthday
static belongsTo = [ parentClass : ParentClass]
}
我需要能够列出按他们最近孩子的生日排序的 ParentClasses。如果我能够params
在常规 CRUD 列表页面中使用 used 就更好了。
我知道我可以在控制器中为这个特定的顺序编写一个特定的规则,但我觉得这不是最好的解决方案,我应该根据一个标准使用派生属性或瞬态属性的东西,但不能找不到办法(我对 Grails 和 Hibernate 有点陌生)。
任何指针将不胜感激。
编辑:我设法做到了:
static mapping = {
mostRecentBirthday formula: '(
SELECT c.data
FROM ChildClass c
WHERE c.parent_class_id=id
ORDER BY c.birthday DESC LIMIT 1
)'
}
我对这个解决方案的唯一问题是那里parent_class_id
是硬编码的。有没有更正确的方法来写这个?