miércoles, 11 de abril de 2007

Could not find selected item matching value af:selectOneChoice f:selectItems

Este problema se da cuando en un selecItems no encuentra en la lista de posibles valores el valor seleccionado (selected) aunque veamos que de hecho si existe.

ADF/JSF al intentar seleccionar el valor de la lista de posibles valores lo hace a través del metodo equals() que tenemos que sobreescribir para que compare las claves de negocio y no compare por serialización del objeto (en este caso nunca serian iguales dos instancias con iguales valores de una clase).

Y el problema se produce cuando el acceso a los valores lo hacemos sin el correspondiente metodo interceptado por hibernate (PORQUE SI UTILIZAMOS HIBERNATE ESTAMOS UTILIZANDO POA [programación orientada a aspectos y por lo tanto interceptores] )
por un problema en la implementacion del equals e Hibernate.

La razón de este error es la siguiente:

Al acceder a las propiedades de los objetos sin el metodo adecuado (interceptado por hibernate) es decir los getter, el valor que devuelve es el que tiene por defecto la clase o el que tenga la instancia del objeto en un momento dado del programa.

No hay comentarios: