Как добавить ограничения на унаследованные свойства в подклассе домена grails
Вот что я хотел бы сделать:
class A {
String string
static constraints = {
string(maxSize:100)
}
}
class B extends A {
static constraints = {
string(url:true)
}
}
Так что класс А должен иметьнемного ограничения и B должны иметьтот же плюс, дополнительный ограничения на одно и то же свойство.
Я не мог заставить это работать, хотя, и я могу вообразить, что это столкнулось бы с концепцией Таблицы за иерархией.
Поэтому я попытался обойти эту проблему, введя объект Command с ограничениями класса B, которые могут быть проверены в конструкторе класса B. Однако кажется, что объекты Command можно использовать только внутри контроллеров (grails постоянно говорит, что .validate не существует. () метод для этого).
Итак, мой вопрос: каков наиболее элегантный способ решить эту проблему, используя ограничения Grails (без повторной реализации проверки вручную)? Может быть...
Переходите к концепции «Таблица на подкласс»?Заставить объект Command работать в классе Domain как-нибудь?Любым другим путем?Редактировать: Было бы хорошо, чтобы я определил все ограничения в дочерних классах, повторяя ограничения родительского класса или вообще не имея ограничений в родительском классе. Но решение должно работать для нескольких дочерних классов (с разными ограничениями) одного и того же родительского класса.