2013-03-21 7 views
0

Возможно ли переопределить иерархию классов для проверки hibernate/javax? Или как переопределить проверку параметров путем расширения класса?переопределение иерархии классов проверки

Использование аннотации @Valid и настройка аннотаций проверки javax в моем классе. Я хочу иметь расширенный класс, где проверка будет удалена. Я обнаружил, что проверка спящего режима проходит по всей иерархии классов и проверяет правильность даже в суперклассах. Я использую это из JST-интерфейса REST API, созданного с помощью Spring MVC.

Пример:

public class Parent { 
    protected Integer numChildren; 

    @NotNull(message = "NumChildren has to be set.") 
    @Size(min 1, max 10, message = "A partent has to have at least one kid.") 
    public Integer getNumChildren() { 
     return numChildren; 
    } 

    public void setNumChildren(Integer numChilds) { 
     this.numChildren = numChilds; 
    } 
} 

public class Child extends Parent { 

    // A child doesnt have to have kids, but can, so I want to override this parameter 
    // and remove the validation requirement, and make it just optional. 
    @Override 
    public Integer getNumChildren() { 
     return super.numChildren; 
    } 
} 

С наилучшими пожеланиями, Markus

ответ

0

Bean Validation не позволяет отключить ограничения/изменения в супер классов. Ограничения всегда объединены. Я предполагаю, что путь будет проходить через группы, например группу ParentChecks и группу ChildChecks. Назначьте ограничения, относящиеся к родительскому элементу дочернего элемента, к соответствующей группе. Затем вы можете переопределить группу по умолчанию для родителя: ParentChecks, _Parent_ и один для ребенка ChildChecks, Ребенок. Это должно сработать.

Смежные вопросы