Llevaba unos días que no lograba solucionar el error de validación de tipo de datos en un formulario trabajando con PrimeFaces. Parecía un error inexplicable, y me estaba dando bastantes quebraderos de cabeza, pues todo estaba aparentemente bien…
Por un lado tenía mi clase Municipios.java, mi converterMunicipios.java con sus métodos getAsObject y getAsString, y mi vista xhtml llamando a un componente <p:selectOneMenu> el cual me traía la lista, y por más que intentaba guardar siempre recibía el error de validación => “Error de validación: el valor no es válido”.
Pues bien, si estás en este punto, la solución es sobreescribir los respectivos métodos equals(Object object) y hashCode()“
@Override public int hashCode() { int hash = 0; hash += (idMunicipio!= null ? idMunicipio.hashCode() : 0); return hash; } @Override public boolean equals(Object object) { if (!(object instanceof Municipios)) { return false; } Municipio other = (Municipio) object; if ((this.idMunicipio == null && other.idMunicipio != null) || (this.idMunicipio != null && !this.idMunicipio.equals(other.idMunicipio))) { return false; } return true; }
Como veis es una solución bien sencilla, pero hay que conocerla. Espero que os sirva de ayuda.
Gracias, me soluciono el mismo problema
Gracias a ti, me alegro de que se solucionara tu problema.
Un saludo