2011-02-01 52 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