本文介绍了将Hibernate结果转换为对象列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 列表<关联>我的DAO中有一个hibernate调用, ());} =(List&Associate>)List.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() ; 

我收到一个错误,说我不能将结果列表转换为模型类型Associate。我不明白为什么会发生这种情况。我只返回联系人表中的字段。

解决方案

您需要指定结果应该是的实体类转换为使用 addEntity(),因为您正在执行不知道实体的SQL查询:

$ p> 列表与LT;准> 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();

另请参阅:






I have a hibernate call in my DAO that looks like this

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

I am getting an error saying that I cannot cast the resulting list to the model type Associate. I don't understand why this is happening. I am returning only the fields that are in the associates table.

解决方案

You need to specify the class of entity the result should be converted to using addEntity(), because you are executing SQL query that doesn't know anything about entities:

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

See also:

这篇关于将Hibernate结果转换为对象列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-14 05:19