Я пытаюсь использовать проверку гибернации для проверки размера списка.в общем, я хочу, чтобы список был пустым, если только он не является объектом типа B
.кажется, не работает:
public static class A
{
private List<Integer> inheritedRemoveAnnotation = new ArrayList<Integer>();
@Size(max=0)
public List<Integer> getInheritedRemoveAnnotation()
{
return inheritedRemoveAnnotation;
}
}
public static class B extends A
{
@Override
@Size(max=Integer.MAX_VALUE)
public List<Integer> getInheritedRemoveAnnotation()
{
return super.getInheritedRemoveAnnotation();
}
}
private static Validator m_validator = Validation.buildDefaultValidatorFactory().getValidator();
public static void main(String[] args)
{
B b = new B();
b.getInheritedRemoveAnnotation().add(1);
System.out.println(m_validator.validate(b));
}
Вывод, который я получаю:
[ConstraintViolationImpl{interpolatedMessage='size must be between 0 and 0', propertyPath=inheritedRemoveAnnotation, rootBeanClass=class oshai.hibernatevalidators.TestInheritence$B, messageTemplate='{javax.validation.constraints.Size.message}'}]