2011-02-01 11 views
11

ho una chiamata di ibernazione nel mio DAO che assomiglia a questoFusioni Hibernate risultato a un elenco di oggetti

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(); 

sto ottenendo un errore che dice che non posso lanciare la lista risultante al tipo di modello associato. Non capisco perché questo sta accadendo. Sto restituendo solo i campi che sono nella tabella associati.

risposta

32

è necessario specificare la classe di entità il risultato dovrebbe essere convertito utilizzando addEntity(), perché si sta eseguendo query SQL che non sa nulla di entità:

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(); 

Vedi anche:

+0

Grazie, non so come ho perso tha t. – JohnnyQuestIsASellOut

+0

C'è un modo per usare una classe DTO invece della classe Entity qui? – Moshiour

Problemi correlati