Как я могу использовать валидатор Hibernate без аннотации на поле? - PullRequest
9 голосов
/ 26 декабря 2010

Можно ли использовать API валидатора Hibernate для хранения проверенного объекта в поле с аннотацией?Например, я хотел бы проверить адрес Email, вызвав метод Java вместо того, чтобы помещать аннотацию @Email в свойство bean-компонента Java.

Ответы [ 2 ]

10 голосов
/ 26 декабря 2010

Да, это возможно. Попробуйте что-то вроде

Validator validator = Validation.buildDefaultValidatorFactory().getValidator();

Car car = new Car(null);

Set<ConstraintViolation<Car>> constraintViolations = validator.validateProperty(car, "manufacturer");

Взгляните на здесь .

(Правка должна быть 6 символов)

3 голосов
/ 24 октября 2014
Решение

zinan.yumaks, в котором они создают фиктивный Car объект, который вам не нужен, не является правильным способом сделать это.Есть лучшее решение, метод validateValue:

Validator validator = Validation.buildDefaultValidatorFactory().getValidator();

String emailAddress = "...";

Set<ConstraintViolation<User>> constraintViolations = 
    validator.validateValue(User.class, "email", emailAddress);

Из документации:

Проверяет все ограничения, наложенные на свойство с именем propertyName класса beanType будет иметь значение свойства value.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...