Problema con consulta en Hibernate utilizando criteria

Hola a todos,

tengo una duda que me ha surgido acerca de hibernate:

Estoy realizando un pequeño proyecto Java, en el que utilizo Hibernate para el acceso a BBDD.
Mi problema viene cuando hago una consulta a una tabla determinada de la BBDD, que debería devolverme un listado, pero me salen bastantes errores y no se de donde viene el error.

Aquí pongo mi método:

 

Observaciones del metodo:
- "idAmigo" es un autoincrement, por lo que se incrementa automaticamente en cada nueva insercion de la tabla "amigos" de la BBDD

Aquí os pongo el mapeo de la clase "Amigo.hbm.xml":

 
Hacer una observacion acerca del mapeo:
- "persona" y "personaAmigo" están definidos en la clase "Amigo" como objetos, y en la BBDD como tipo "integer", por lo que he tenido que redefinirlos.

Para finalizar, el error creo que viene a la hora de definir el "criteria" en el metodo anteriormente puesto, o en el mapeo, a la hora de definir los objetos "personaAmigo" y "persona" para referenciarlos con la BBDD.

Aqui os pongo tambien las clases Amigo y Persona, por si le quereis echar un vistazo:

-------CLASE AMIGO-----
 

----CLASE PERSONA----
 

Bueno gracias por todo y espero haberme explicado, :D.
Un saludo.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de 043h68

Stacktrace

Ayudaría mucho si pones el error que te devuelve.

Saludos.

Imagen de benek

Ok, ya pusiste todo excepto

Ok, ya pusiste todo excepto lo más importante: el error.

Pega el stacktrace del error pf.

Saludos.

el error que me "tira"

aqui teneis el error:

Exception in thread "main" org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of proyecto.modelo.Persona.idPersona
at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:171)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183)
at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3591)
at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3307)
at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)
at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:218)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:397)
at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:87)
at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1707)
at org.hibernate.loader.Loader.bindParameterValues(Loader.java:1678)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563)
at org.hibernate.loader.Loader.doQuery(Loader.java:673)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at proyecto.dao.AmigoDAO.getAmigosPersona(AmigoDAO.java:83)
at proyecto.pruebas.main(pruebas.java:39)
Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:145)
... 20 more
Java Result: 1

SOLUCIONADO! :D

Buenas tardes a todos!

ante todo, agradeceros la ayuda prestada, me ha servido para hacer diferentes pruebas.

La solucion estaba en el criteria, que lo habia hecho mal. Aqui pongo el criteria correcto, por si a alguien le pasa alguna vez:

 

tenia que poner el "name" asignado en el mapeo de Amigo ("persona", que es de tipo Persona) en el criteria, y compararlo con el objeto Persona "p" a pelo.

Espero haberme explicado correctamente.

Un saludo!