Java Hibernate:有没有办法将本机SQL结果自动转换为自定义对象?

Java Hibernate:有没有办法将本机SQL结果自动转换为自定义对象?,java,sql,hibernate,Java,Sql,Hibernate,我有一个本机SQL查询,它返回多个计算结果(例如多个表的总和和平均值),我希望将这些结果加载到包含所有必需字段的自定义对象中。我知道Hibernate提供了addEntity方法,它允许您指定结果所表示的映射实体的类型 在本例中,由于结果来自多个表,因此我使用的自定义对象不是映射实体。有没有办法让hibernate返回一个列表,或者我必须手动将结果复制到适当的对象?谢谢 Query query = this.sessionFactory.getCurrentSession().createSQL

我有一个本机SQL查询,它返回多个计算结果(例如多个表的总和和平均值),我希望将这些结果加载到包含所有必需字段的自定义对象中。我知道Hibernate提供了
addEntity
方法,它允许您指定结果所表示的映射实体的类型

在本例中,由于结果来自多个表,因此我使用的自定义对象不是映射实体。有没有办法让hibernate返回一个
列表
,或者我必须手动将结果复制到适当的对象?谢谢

Query query = this.sessionFactory.getCurrentSession().createSQLQuery(queryString.toString());

return (List<CustomObject>)query.list(); //doesn't work, obviously
Query Query=this.sessionFactory.getCurrentSession().createSQLQuery(queryString.toString());
return(List)query.List()//显然不起作用

看看。它们的设计目的正是为了满足您的需要,并同时适用于HQL和SQL。

为什么不使用hibernate query?这些映射有许多急切的获取(在应用程序的其他部分很方便),这导致了大量不必要的连接和数据获取,从而导致了明显的性能下降。涉及到很多表,我认为调整所有获取策略的成本是不值得的。这就是我需要的。谢谢