2011-02-01 5 views
11

tengo una llamada de hibernación en mi DAO que tiene este aspectomoldeada Hibernate resultado a una lista de objetos

List<Associate> associate = (List<Associate>)session.createSQLQuery("SELECT * FROM associates WHERE fk_id = :id AND fk_associate_id = (SELECT id FROM users WHERE fk_user_type = 2)").setParameter("id", id).list(); 

estoy recibiendo un error que dice que no puedo emitir la lista resultante al Asociado tipo de modelo. No entiendo por qué está sucediendo esto. Estoy devolviendo solo los campos que están en la tabla de asociados.

Respuesta

32

Es necesario especificar la clase de entidad el resultado debe ser convertido a la utilización de addEntity(), porque se está ejecutando la consulta SQL que no sabe nada acerca de las entidades:

List<Associate> associate = (List<Associate>) session.createSQLQuery(
    "SELECT * FROM associates WHERE fk_id = :id AND fk_associate_id = (SELECT id FROM users WHERE fk_user_type = 2)") 
    .addEntity(Associate.class) 
    .setParameter("id", id).list(); 

Ver también:

+0

Gracias, no sé cómo me perdí tha t. – JohnnyQuestIsASellOut

+0

¿hay alguna forma de usar una clase DTO en lugar de la clase Entity aquí? – Moshiour

Cuestiones relacionadas