JPA Hibernate转换为非实体类

JPA Hibernate转换为非实体类,hibernate,jpa,Hibernate,Jpa,我有一个很大的数据库,我需要进行一个查询,该查询至少要连接3个表。问题在于此查询的结果集不是实体类 查询: SELECT avg(g.grade) avgGrade, max(g.grade) maxGrade, min(g.grade) minGrade FROM... 新类别: 类统计{ 浮动平均汇率; 浮动最大坡度; 浮动明拉德; //构造函数+getter和setter } 现在我需要从查询中获取这三个值。我该怎么做呢?您可以使用构造函数表达式尝试下面的查询,并相应地修改它 选择新包

我有一个很大的数据库,我需要进行一个查询,该查询至少要连接3个表。问题在于此查询的结果集不是实体类

查询:

SELECT avg(g.grade) avgGrade, max(g.grade) maxGrade, min(g.grade) minGrade FROM...
新类别:

类统计{
浮动平均汇率;
浮动最大坡度;
浮动明拉德;
//构造函数+getter和setter
}

现在我需要从查询中获取这三个值。我该怎么做呢?

您可以使用构造函数表达式尝试下面的查询,并相应地修改它

选择新包装名称统计(平均(g级)、最大(g级)、最小(g级)) 从


您可以使用构造函数表达式尝试下面的查询,并相应地修改它

选择新包装名称统计(平均(g级)、最大(g级)、最小(g级)) 从


假设类Stat具有适当的构造函数

select new your_pkg_name.Stat(avg(g.grade) as avgGrade, max(g.grade)  as maxGrade, min(g.grade) as minGrade) FROM ...

假设类Stat具有适当的构造函数

select new your_pkg_name.Stat(avg(g.grade) as avgGrade, max(g.grade)  as maxGrade, min(g.grade) as minGrade) FROM ...
您有两种选择(我认为还有更多,但这两种应该是最常见的),首先使用Nayan Wadekar建议的方式,通过构造函数构造数据对象

第二个是只选择所需的字段,Hibernate将返回一个元组列表。列表的每个元素都是一个对象[],它表示结果的一个“行”。您可以自行实现从元组到Stat类的转换

您有两种选择(我认为还有更多,但这两种应该是最常见的选择),首先使用Nayan Wadekar建议的方法,通过构造函数构造数据对象


第二个是只选择所需的字段,Hibernate将返回一个元组列表。列表的每个元素都是一个对象[],它表示结果的一个“行”。您可以自行实现从元组到Stat类的转换

我发现了问题,avg(g.grade)返回一个double,我的类Stat的构造函数接受一个float,因此我有一个与未找到构造函数异常相关的错误


感谢所有:)

我发现了问题,avg(g.grade)返回一个double,我的类Stat的构造函数接受一个float,因此我有一个与未找到构造函数异常相关的错误


感谢大家:)

我可以使用entitymanager还是必须使用hibernate会话对象?我相信它也适用于JPA EM(我没有尝试过证明它,只是通过我的裸内存)我可以使用entitymanager还是必须使用hibernate会话对象?我相信它也适用于JPA EM(我没有尝试过证明它,只是通过我的裸内存)那我怎么才能得到这个物体呢?我得做个演员?Stat=(Stat)em.createQuery(hql).getSingleResult();那我怎么才能得到这个物体呢?我得做个演员?Stat=(Stat)em.createQuery(hql).getSingleResult();