JPA:如何将本机查询结果集转换为 POJO 类集合

编程入门 行业动态 更新时间:2024-10-28 03:19:46
本文介绍了JPA:如何将本机查询结果集转换为 POJO 类集合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我在我的项目中使用 JPA.

I am using JPA in my project.

我遇到了一个需要对五个表进行连接操作的查询.所以我创建了一个返回五个字段的本机查询.

I came to a query in which I need to make join operation on five tables. So I created a native query which returns five fields.

现在我想将结果对象转换为包含相同五个字符串的 java POJO 类.

Now I want to convert the result object to java POJO class which contains the same five Strings.

JPA 有没有办法直接将结果转换为 POJO 对象列表??

Is there any way in JPA to directly cast that result to POJO object list ??

我得出了以下解决方案..

I came to the following solution ..

@NamedNativeQueries({ @NamedNativeQuery( name = "nativeSQL", query = "SELECT * FROM Actors", resultClass = db.Actor.class), @NamedNativeQuery( name = "nativeSQL2", query = "SELECT COUNT(*) FROM Actors", resultClass = XXXXX) // <--------------- problem })

现在在 resultClass 中,我们是否需要提供一个实际的 JPA 实体类?或者我们可以将其转换为任何包含相同列名的 JAVA POJO 类吗?

Now here in resultClass, do we need to provide a class which is actual JPA entity ? OR We can convert it to any JAVA POJO class which contains the same column names ?

推荐答案

JPA 提供了一个 SqlResultSetMapping 允许您将从本地查询返回的任何内容映射到实体 或自定义类.

JPA provides an SqlResultSetMapping that allows you to map whatever returns from your native query into an Entity or a custom class.

EDIT JPA 1.0 不允许映射到非实体类.仅在 JPA 2.1 中,ConstructorResult 已添加到地图返回一个 java 类的值.

EDIT JPA 1.0 does not allow mapping to non-entity classes. Only in JPA 2.1 a ConstructorResult has been added to map return values a java class.

此外,对于 OP 获取计数的问题,定义一个结果集映射就足够了,ColumnResult

Also, for OP's problem with getting count it should be enough to define a result set mapping with a single ColumnResult

更多推荐

JPA:如何将本机查询结果集转换为 POJO 类集合

本文发布于:2023-08-01 09:10:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1267141.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:本机   转换为   查询结果   如何将   JPA

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!