Subscribe:

Labels

sábado, 21 de septiembre de 2013

JSF: Error de validación: el valor no es válido.

Hola buen día!!, si en algún momento usaste un SelectOneMenu de JSF o el de Primefaces al momento de persistir datos (en mi caso usé la implementación Hibernate con anotaciones JPA), habrás encontrado el casi "inexplicable" mensaje "Error de validación: el valor no es válido" (inexplicable -es probable que esté exagerando- jejeje) pues fue complicado detectar qué es lo que pudiera estar sucediendo ya que ni siquiera se cuenta con detalles de este mensaje de error y si no te topaste con ella pues que afortunado que eres! :-).

Es también sabido que para persistir objetos en Hibernate desde un <selectOneMenu> se tiene que hacer la CONVERSIÓN, usando la interfaz "javax.faces.convert.Converter" imagino que ya tienen hecha la clase que realiza dicha conversión, claro está; con sus respectivos métodos getAsObject y getAsString.

En primer lugar veamos el bean que usé, Escuela.java:
Nota: No crearse problemas con los nombres de los métodos y tablas que voy a usar, para el error que estamos tratando ello no es lo más importante, al menos no son las que genera el error.

El problema en si, se da porque en nuestro bean debemos sobreescribir los respectivos métodos "equals(Object object)" y "hashCode()":



Ahora nuestra nueva clase quedará como sigue:


Bueno, eso fue todo por hoy; espero sus dudas y/o comentarios sobre el tema. Muchas gracias, hasta luego!!

Ahhhhhhh y por favor si el contenido te fue útil ayúdame recomendando por las redes sociales; dando "Me gusta" en Javaenaccion en Facebook o "+1" en Google+, etc etc. en :D.

3 comentarios:

Unknown dijo...

Muchas gracias. Arreglaste mi problema gracias por compartir. Namaste !!! Saludos.

Neko dijo...

Muchas gracias

Fede dijo...

Excelente aporte, me olvidé de implementar el contrato y perdí varias horas hasta encontrar la solución que brindaste

Todo en Infolinks