首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Eclipselink jpa - sql查询结果映射到java对象

Eclipselink jpa - sql查询结果映射到java对象
EN

Stack Overflow用户
提问于 2018-08-30 09:09:58
回答 1查看 474关注 0票数 0

我试图从getResultList()返回一个类型化列表,但是在将我的sql结果列表映射到类型化列表时遇到了问题。它会一直返回一个通用对象的列表。这是我当前的代码:

代码语言:javascript
运行
复制
EntityManager em = this.emPool.createEntityManager();
TypedQuery<Runtime> query = Runner.getRuntime(em);
List<Runtime> runtimeList = query.getResultList();

此外,在Runner类中,我有以下内容:

代码语言:javascript
运行
复制
    public static TypedQuery<Runtime> getRuntime(EntityManager em) {
        return em.createNamedQuery(COUNT_RUNTIMES_SQL_EXPRESSION, Runtime.class);
    }

下面是查询:

代码语言:javascript
运行
复制
SELECT u.runner_id as runnerId, COUNT(u.times) FROM RUNNER u"
        + " WHERE u.age = :60 GROUP by u.runner_id

任何提示都将非常感谢。

注意:我正在运行的查询是一个报告查询,是一个简单的group by -> count

EN

回答 1

Stack Overflow用户

发布于 2018-08-31 05:39:44

您需要在select子句中使用构造函数表达式。例如,

代码语言:javascript
运行
复制
SELECT new com.example.Runtime(u.runner_id as runnerId, COUNT(u.times)) FROM RUNNER u"
        + " WHERE u.age = :60 GROUP by u.runner_id

在类Runtime中定义相应的构造函数。

如果使用Criteria API,则CriteriaBuilder.construt(...)应该使用。使用Cmobilecom JPA对criteria API进行测试。

免责声明:我是Cmobilecom JPA ( java和android)的开发者

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52087951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档