У меня есть следующие классы домена:
class ParentClass {
String myProperty
static hasMany = [ childClasses : ChildClass]
}
class ChildClass {
Date birthday
static belongsTo = [ parentClass : ParentClass]
}
Мне нужно иметь возможность перечислять ParentClasses, упорядоченные по дате рождения их самого последнего ребенка.Было бы лучше, если бы я мог использовать params
, используемый на обычных страницах списка CRUD.
Я знаю, что мог бы написать конкретное правило в контроллере для этого конкретного заказа, но я чувствую, что это такне лучшее решение и что я должен использовать что-то вроде производного свойства или временного свойства, основанного на критериях, но не смог найти способ сделать это (я новичок в 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
там жестко запрограммирован.Есть ли более правильный способ написать это?