gpt4 book ai didi

java - 如何从 hibernate 中的类型化查询返回不是实体的对象列表?

转载 作者:搜寻专家 更新时间:2023-10-30 23:25:48 25 4
gpt4 key购买 nike

我需要从实体类 Employee 中提取一些字段并添加一些额外的硬编码字段并使用 GROUP BY 子句返回结果。

下面是我试过的代码:

String query = "SELECT emp.category, emp.salary  0 as somevalue, 0 as dummy FROM employee emp "
+ "WHERE emp.date = :date AND emp.class = :class AND emp.classificationDetail.shortDescription = :classificationType GROUP BY emp.category";

TypedQuery<CustomEmployee> typQuery = entityManager.createQuery(query, CustomEmployee.class);

typQuery.setParameter("date", req.getDate());
typQuery.setParameter("class", req.getClass());


return typQuery.getResultList();

但我遇到异常,无法使用请求的结果类型为具有多个返回值的查询创建 TypedQuery。

如何实现。谢谢。

最佳答案

首先检查这部分:emp.salary 0 as somevalue。这应该是 emp.salary as somevalue0 as somevalue,但不能两者兼而有之。

像下面这样定义一个类(为简短起见;我使用公共(public)属性,但您可以根据需要更改它):

public class CustomEmployee {
public String category;
public Double salary;
public Double dummy;
...
}

在查询中使用它如下:

String query = "SELECT new mypackage.CategorySalary( " +
" emp.category, " +
" emp.salary as somevalue, " +
" 0 as dummy " +
") from ... " +
"WHERE ... ";

TypedQuery<CustomEmployee> typQuery = entityManager.createQuery(query, CustomEmployee.class);

关于java - 如何从 hibernate 中的类型化查询返回不是实体的对象列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58190838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com