2013-06-27 17 views
6

Mam następującą właściwość w moim formularzu Wiosna MVC fasoli pomocą javax.validation.constraints do sprawdzania fasoli formularz następująco:Czy następujące sprawdzanie poprawności oznacza, że ​​pole nie może mieć wartości NULL? (@Size adnotacja)

public class MyForm { 
    @Size(min = 2, max = 50) 
    private String postcode; 

    // getter and setter for postcode. 
} 

Moje pytanie brzmi: Czy @Size(min = 2) oznacza, że ​​nieruchomość nie może być null ponieważ zawsze będzie wymagać długości większej niż 2. Powodem, dla którego to mówię jest to, że istnieje ograniczenie @NotNull w tym samym pakiecie, a zatem powoduje to, że ograniczenie @NotNull staje się nadmiarowe, jeśli powinienem użyć go w powyższym komponencie bean.

+1

"Wartości Null są uważane za ważny", mówi w http://docs.oracle.com/javaee/6/api /javax/validation/constraints/DecimalMax.html –

Odpowiedz

7

Jeśli spojrzeć na dokumentacji adnotacji Rozmiar (http://docs.oracle.com/javaee/6/api/javax/validation/constraints/Size.html)

można przeczytać „ zerowe elementy są uznawane za ważne.
Dlatego trzeba określić @NotNull na szczycie twoje pole.
Masz dwie alternatywy:

@NotNull 
@Size(min = 2, max = 50) 
private Integer age; 

Albo jak Riccardo F. sugerowane:

@NotNull @Min(13) @Max(110) 
private Integer age; 
1

@NotNull służy do pól tekstowych też, ale można ich używać razem jak

@NotNull @Min(13) @Max(110) 
private Integer age; 

to oznacza wiek nie może być null i musi mieć wartość od 13 do 100 i

@NotNull 
private Gender gender; 

Oznacza, że ​​płci nie może być null

0

Według dokumentacji @Size

null elementy są uznawane za ważne.

odsyłającym hibernacji walidację rzeczywiste @Size implementacje są w:

org.hibernate.validator.constraints.impl.SizeValidator

więc określić @NotNull tak.

Powiązane problemy