2011-02-01 44 views
11

的名單我已經在我的DAO休眠調用看起來像這樣演員休眠導致的對象

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

我收到一個錯誤說我不能在結果列表轉換爲模型類型相關聯。我不明白爲什麼會發生這種情況。我只返回聯繫人表中的字段。

回答

32

您需要指定類實體的結果應該轉換爲使用addEntity(),因爲你正在執行SQL查詢,不知道什麼實體:

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

參見:

+0

謝謝你,我不知道我怎麼錯過塔噸。 – JohnnyQuestIsASellOut 2011-02-01 15:20:35