Tôi có một bài kiểm tra như dưới đây:tôi có thể ghi đè lên một JSR-303 xác nhận chú thích
public class TestSizeAnnotation
{
public static void main(String[] args)
{
System.out.println(
Validation.buildDefaultValidatorFactory().getValidator().validate(new C()));
}
public static class P
{
private List<String> lst = newArrayList("AA");
@Size(max=0, message="P")
public List<String> getLst()
{
return lst;
}
public void setLst(List<String> lst)
{
this.lst = lst;
}
}
public static class C extends P
{
@Override
@Size(max=5, message="C")
public List<String> getLst()
{
return super.getLst();
}
}
}
với đầu ra sau đây:
[ConstraintViolationImpl{interpolatedMessage='P', propertyPath=lst, rootBeanClass=class com....validator.TestSizeAnnotation$C, messageTemplate='P'}]
Tuy nhiên, tôi mong rằng các chú thích có thể @Size
được ghi đè, và sẽ không có cảnh báo nào xuất hiện.
Có cách nào để thực hiện điều đó không?
EDIT: Tôi tìm thấy một bug có vẻ liên quan đến điều đó, nhưng tôi chạy phiên bản 4.2.0 cuối cùng và vẫn nhận được hành vi ở trên.
không , Tôi muốn sử dụng trình xác thực mặc định, nhưng ghi đè chú thích. – oshai
Xin lỗi, giờ tôi hiểu ý của bạn là gì. Tôi đã chỉnh sửa câu trả lời của mình. –
Cảm ơn, có cách nào để làm điều đó trong mã? – oshai