средство проверки гибернации: проверка соответствия 2 полей - PullRequest
0 голосов
/ 10 декабря 2010

Мне было интересно, я что-то пропускаю или средство проверки гибернации не предлагает аннотации для проверки того, что 2 поля равны (например, пароль).Я знаю, что могу написать свои собственные валидаторы, но это похоже на стандартную функциональность.

Ответы [ 5 ]

3 голосов
/ 28 марта 2013

Если вы используете 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;
}
2 голосов
/ 28 марта 2011

Хорошо продуманный пример, который решает аналогичную проблему, то есть валидация между полями:

Проверка перекрестного поля с помощью Hibernate Validator (JSR 303)

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

Hibernate - это ORM Mapper.

Используется для сохранения данных в БД и их повторного извлечения. Таким образом, наличие двух полей с одинаковым значением не имеет большого смысла (с точки зрения устойчивости). Это то, что вы должны проверить в своей бизнес-логике.

А я с Джунешем ... Не сохраняйте свои пароли в извлекаемом формате ... Посмотрите на хазинг и соление - или даже лучше подумайте об openID, чтобы вам не пришлось беспокоить своих клиентов еще одним глупым паролем .. .

0 голосов
/ 13 декабря 2010

Только что пошли для пользовательского маршрута валидатора.Два других ответа здесь не имеют никакого отношения к вопросу.Немного прибегнув к поиску, я нашел пример соответствия поля.

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

Я надеюсь, что вы также не сохраняете подтверждающий пароль в базе данных.Для этого у вас нет готовых проверок, но вместо этого вам придется использовать пользовательскую аннотацию, которая также довольно проста.

...