Có thể để xác nhận mỗi yếu tố của một bộ sưu tập, có trụ sở một hoặc nhiều quy tắc xác nhận đại biểu? Ví dụ:JSR303 xác nhận vào bộ sưu tập của các đối tượng chung
@EachElement({@Min(1), @Max(12)})
private Set<Integer> monthNumbers;
Có thể để xác nhận mỗi yếu tố của một bộ sưu tập, có trụ sở một hoặc nhiều quy tắc xác nhận đại biểu? Ví dụ:JSR303 xác nhận vào bộ sưu tập của các đối tượng chung
@EachElement({@Min(1), @Max(12)})
private Set<Integer> monthNumbers;
Hãy xem câu trả lời này: Hibernate Validation of Collections of Primitives. Điều đó mô tả một giải pháp phù hợp với bạn nhưng nó khá phức tạp. Một giải pháp đơn giản có thể thực hiện một lớp wrapper cho Integer
của bạn và tuyên bố @Min
và @Max
trong lớp đó. Hơn bạn có thể sử dụng
@Valid
private Set<MyIntegerWrapper> monthNumbers;
lớp MyIntegerWrapper:
class MyIntegerWrapper
{
@Min(1)
@Max(12)
Integer myInteger;
}
Ở đây bạn tìm thấy một số tài liệu cho @Valid
: Object graphs
Hãy xem validator-collection, với thư viện này là rất dễ dàng để sử dụng bất kỳ ràng buộc Chú thích trên một tập hợp các loại đơn giản.
@EachMin(1)
@EachMax(12)
private Set<Integer> monthNumbers;