org.hibernate.validator.Length max value - PullRequest
1 голос
/ 16 июля 2010

Я использую аннотацию @Length для строки:

@Length
private String variable;

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 16 июля 2010

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

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

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

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

2 голосов
/ 16 июля 2010

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

int max() default Integer.MAX_VALUE;

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

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

...