当前位置: 首页 > 知识库问答 >
问题:

如何将结果集映射到JPA中自定义POJO

巴学潞
2023-03-14

我需要通过连接3个不同的表来获取6列。我在entity类的顶部将它们声明为NamedNativequery,并且使用了create named query method form JPA。当我尝试fo获取结果集时,我得到的是数组对象列表,而不是POJO类型的对象列表。为了将结果集映射到外部POJO,我应该定义任何外部映射吗?

共有1个答案

杜彦君
2023-03-14

你当然可以。这应该有所帮助:

@NamedNativeQuery(query = "SELECT t1.col1, t2.col2 FROM t1 JOIN t2 ON ...", name = "MyNamedQuery", resultSetMapping = "MyPojoMapper")
@SqlResultSetMapping(name = "MyPojoMapper", classes = @ConstructorResult(
    targetClass = MyPojo.class,
    columns = {
            @ColumnResult(name = "col1", type = String.class),
            @ColumnResult(name = "cols", type = String.class)
    }))

然后按原样使用:

NativeQuery query = session.getNamedNativeQuery("MyNamedQuery");
MyPojo result = (MyPojo) query.getSingleResult();
 类似资料:
  • 问题内容: 我在使用JPA(Hiberante提供程序)映射自定义集合时遇到问题。例如,当我使用带有属性的对象时 与 在我的ORM文件中,没关系;但是如果我替换 “列表匹配项”; 通过 ,其中 “匹配” 的定义如下: 它产生以下错误: 感谢您的关注! 问题答案: 可以,但是您必须将其称为常见集合之一- 或。 所以: 为什么?例如,因为Hibernate对您的集合进行代理以启用延迟加载。所以它创建,

  • 问题内容: 我正在尝试使用@SqlResultSetMapping和@ConstructorResult将本机查询的结果映射到POJO。这是我的代码: 然后在我的DAO中: 我已经读到JPA 2.1仅支持此功能,但这就是我正在使用的功能。这是我的依赖项: 我发现了一些资源,其中包括:jpa2.1中的@ConstructorResult映射。但是我仍然没有运气。 我想念什么?为什么找不到SqlRes

  • 我正在尝试使用@SQLResultSetMapping和@ConstructorResult将本机查询的结果映射到POJO。下面是我的代码: 我找到了一些参考资料,其中包括JPA2.1中的@ConstructorResult映射。但我还是没有运气。 我错过了什么?为什么找不到SqlResultSetMapping?

  • 问题内容: 有人可以向我展示如何在Hibernate中编写以下SQL并正确获取结果的示例吗? 如果可能的话,我想做的就是将结果放入自己的基类中: 我相信在JPA(使用)中是可能的,但是我还没有弄清楚如何在Hibernate(使用和)中做到这一点。 我试图更好地学习Hibernate,即使这个“简单”查询也令人困惑,无法知道Hibernate以哪种形式返回结果,以及如何将结果映射到我自己的(基)类中

  • 我正在浏览Quarkus当前可用的指南 我说的是在不使用现有JPA实体的情况下,将SQL查询结果绑定到自定义pojo的可能性。我找到的所有示例都只从一个表中提取记录,从中提取出相同JPA实体的实例列表。然而,这不太可能是现实世界应用程序的常见用例。大多数情况下,我们必须处理不那么琐碎的查询,这些查询涉及来自不同表的字段的混合、连接或计算字段。 SQL ResultSet映射是一个方便的JPA功能,

  • 我需要使用本机查询对2-3个表执行联合操作,并需要将结果映射到自定义对象中。由于JPA不支持UNION子句,所以JPA不可能实现同样的事情。 我听说过SqlResultSetMap,它在这种情况下有用吗? 如何以及在哪里使用这个,任何链接或其他东西?没有在谷歌上获得太多信息。