Мне было интересно, я что-то пропускаю, или валидатор hibernate не предлагает аннотации, чтобы проверить, что 2 поля равны (например, пароль). Я знаю, что могу написать свои собственные валидаторы, но это похоже на стандартную функциональность.hibernate validator: подтвердите соответствие двух полей
ответ
Только что отправился на маршрут таможенного валидатора. Остальные 2 ответа здесь не связаны с вопросом. С небольшим количеством поисковых запросов я нашел пример fieldmatch.
Я надеюсь, что вы не сохраните пароль подтверждения в базе данных. Для этого у вас нет никаких проверок, но вместо этого вам придется использовать пользовательскую аннотацию, которая также довольно проста.
Я использовал гибернации тег, потому что WASN» t тег hibernate-validator, и я пока не могу создавать новые. Конечно, я не защищаю поле подтверждения. – jack
Hibernate - это ORM Mapper.
Используется для сохранения данных в БД и их экстрагирования. Таким образом, наличие двух полей с одинаковым значением не имеет большого смысла (с точки зрения стойкости). Это то, что вы должны проверить в своей бизнес-логике.
И я с Junesh ... Не сохраняйте свои пароли в восстанавливаемом формате ... Посмотрите на Hasing and Salting - Или еще лучше подумайте об openID, чтобы вам не пришлось беспокоить ваших клиентов еще одним глупым паролем. ..
Я использовал тег hibernate, потому что не было тега hibernate-validator, и я пока не могу создавать новые. Конечно, я не защищаю поле подтверждения. – jack
хорошо продуман пример, который решает подобную проблему, то есть проверка поперечного поля:
Если вы используете Spring Framework, то вы можете использовать Spring Expression Language (SPEL) для этого. Я написал небольшую библиотеку, которая предоставляет проверщик JSR-303 на основе SpEL, который упрощает кросс-полевые проверки. Взгляните на https://github.com/jirutka/validator-spring.
Это подтвердит равенство полей пароля, если хотя бы один из них не пуст. Пример
@SpELAssert(value = "password.equals(passwordVerify)",
applyIf = "password || passwordVerify",
message = "{validator.passwords_not_same}")
public class User {
private String password;
private String passwordVerify;
}
Реализация: http://git.springsource.org/greenhouse/greenhouse/trees/master/src/main/java/com/springsource/greenhouse/validation – axtavt