2010-07-16 2 views
1

Я использую аннотации @Length на строку:org.hibernate.validator.Length максимальное значение

@Length 
private String variable; 

Я знаю, что я могу установить максимальное значение на этой аннотации, но кто-нибудь знает, если это можно установить неограниченное максимальное значение?

Благодаря

ответ

2

Для обоих javax.validation.Length и org.hibernate.validator.constraints.Length значение по умолчанию:

int max() default Integer.MAX_VALUE; 

т.е. 2147483647. Таким образом, не совсем безграничны, но достаточно.

Если это вас не устраивает, вы можете определить собственное ограничение (на JSR 303 - javax.validation) и использовать длинный параметр вместо int.

2

Я знаю, что могу установить максимальное значение в этой аннотации, но кто-нибудь знает, можно ли установить неограниченное максимальное значение?

max является int и по умолчанию Integer.MAX_VALUE. И так как Java String API НЕ поддерживает строки длиной более Integer.MAX_VALUE символов (для такой строки требуется более 4 ГБ памяти), это когерентно. И разрешение большего размера на уровне ограничения определенно не.

И, кстати, неограниченное максимальное значение не имеет большого смысла как «ограничение». Если вы не хотите что-то ограничивать, не определяйте ограничение.

В качестве побочного примечания я предлагаю использовать стандарт @Size из проверки бобов вместо аннотации @Length от Hibernate Validator.

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