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