Похоже, что аннотация Hibernate NotEmpty
не приводит к ошибке для строк, заполненных пробелом (" "
). Работает только для нулей или пустых строк (например: new String()
). Есть ли обходной путь / исправление для этого?
Проблема с обрезкой NotEmpty в валидаторе гибернации
Ответы (3)
Замените @NotEmpty аннотацией @Pattern, которая включает выражение регулярного выражения, которое не работает в строках, которые являются чистыми пробелами или пустыми (вы можете включить как @NotEmpty, так и @Pattern и таким образом упростить регулярное выражение). Или напишите собственный валидатор, как описано здесь.
person
Jherico
schedule
15.01.2010
Спасибо, в итоге я написал собственный валидатор.
- person Marcus Leon; 15.01.2010
@NotEmpty используется для проверки размера, а не содержимого, и применяется как к коллекциям, так и к строкам. Функциональность, которую вы ищете, предоставляется в @NotBlank, который специфичен для строк и игнорирует конечные пробелы.
person
Ken Blair
schedule
07.06.2011
Я бы хотел, чтобы некоторые ограничения Hibernate были включены в JEE6. Я считаю, что набор ограничений JEE6 по умолчанию несколько ограничен!
- person Muel; 14.09.2012
Обратите внимание, что
@NotEmpty
был добавлен в версии 4.1. Для версий до 4.1 вам потребуется специальный валидатор или @Pattern
. См. stackoverflow.com/a/17136803/2102634 для более подробного объяснения.
- person Rick Hanlon II; 16.06.2013
@NotBlank
- это способ проверки длины строки с помощью неявного вызова обрезки.
person
DavidA
schedule
19.05.2014