Pregunta

Me preguntaba, estoy pasando por alto algo o ¿Ofrece el validador de hibernación sin anotación para verificar que 2 campos son iguales (por ejemplo, una contraseña). Sé que puedo escribir mis propios validadores, pero bien esto parece como funcionalidad estándar.

¿Fue útil?

Solución 3

Sólo fue por la ruta validador personalizado. Los otros 2 respuestas aquí no están muy relacionados con la cuestión. Con un poco de google me encontré con un ejemplo fieldmatch.

Otros consejos

Si estás usando Spring Framework, puede utilizar la primavera Expression Language (SpEL) para eso. He escrito una pequeña biblioteca que proporciona JSR-303 validador basado en SpEL que hace las validaciones de campos cruzados muy fácil. Echar un vistazo a https://github.com/jirutka/validator-spring .

Esto validará la igualdad de los campos de contraseña cuando al menos uno de ellos no está vacío.

@SpELAssert(value = "password.equals(passwordVerify)",
            applyIf = "password || passwordVerify",
            message = "{validator.passwords_not_same}")
public class User {

    private String password;
    private String passwordVerify;
}

A bien distribuida ejemplo que las direcciones de un problema similar es decir, la validación cruzada campo:

validación de campo Cruz con Hibernate Validator (JSR 303)

Hibernate es un ORM Mapper.

Se utiliza para persistir datos en una base de datos y extraer de nuevo. Como tal, que tiene 2 campos con un valor idéntico hace no mucho sentido (Desde un punto de vista persistencia). Eso es algo que se debe comprobar en su lógica de negocios.

Y yo estoy con Junesh ... No persisten sus contraseñas en un formato recuperable ... Busque Hasing y Salazones - O mejor aún, pensar openID para que no tenga que molestarse a sus clientes con otra contraseña estúpida .. .

Espero que no está ahorrando la confirmación de contraseña en la base de datos también. Usted no tiene ninguna de las validaciones de la caja para esto, sino que tendrá que anotación uso costumbre que es bastante simple también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top