微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决JPA:如何将原生查询结果集转换为 POJO 类集合

JPA 提供了一个SqlResultSetMapping允许您将本机查询的任何返回映射到实体的方法自定义.

JPA 1.0 不允许映射到非实体类。仅在 JPA 2.1 中添加ConstructorResult以将返回值映射到 java 类。

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

解决方法

我在我的项目中使用 JPA。

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

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

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

我来到以下解决方案..

@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 类?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。