当前位置: 首页 > 面试题库 >

Hibernate Native SQL查询检索实体和集合

戴博
2023-03-14
问题内容

这是我的情况,我有两个基本的POJO,并给出了一个简单的hibernate映射:

Person
  - PersonId
  - Name
  - Books

Book
  - Code
  - Description

我的SQL查询返回的行看起来像这样:

PERSONID NAME       CODE DESCRIPTION
-------- ---------- ---- -----------
1        BEN        1234 BOOK 1
1        BEN        5678 BOOK 2
2        JOHN       9012 BOOK 3

我的hibernate查询如下所示:

session.createSQLQuery("select personid, name, code, description from person_books")  
       .addEntity("person", Person.class)
       .addJoin("book", "person.books")
       .list();

这是每个部分的内容:Hibernate文档的18.1.3:http :
//docs.jboss.org/hibernate/core/3.6/reference/zh-
CN/html/querysql.html#d0e17464

我希望在清单中得到的是2个人对象,其中包含藏书中的书对象:

List
 |- Ben
 |   |- Book 1
 |   '- Book 2
 '- John
     '- Book 3

我实际上看到的是:

List
 |- Object[]
 |   |- Ben
 |   |   |- Book 1
 |   |   '- Book 2
 |   '- Book 1
 |- Object[]
 |   |- Ben
 |   |   |- Book 1
 |   |   '- Book 2
 |   '- Book 2
 '- Object[]
     |- John
     |   '- Book 3
     '- Book 3

有谁知道使用这种方法是否可以获得我想要的东西?


问题答案:

HHH-2831使用addJoin的本机SQL查询或返回对象数组而不是单个实体

此行为是由一个已知​​的错误引起的。h,应该更努力地搜寻!



 类似资料:
  • 问题内容: 这是我的情况,我有两个基本的POJO,并给出了一个简单的休眠映射: 我的SQL查询返回的行看起来像这样: 我的休眠查询如下所示: 这是每个部分的内容:Hibernate文档的18.1.3:http : //docs.jboss.org/hibernate/core/3.6/reference/zh- CN/html/querysql.html#d0e17464 我希望在清单中得到的是2

  • 我通常使用JPQL查询数据库,但今天我不得不使用原生查询,因为性能原因和JPQL中没有的特性(联接子查询)。使用JPQL,可以使用join fetch来检索父实体及其子实体集合。然而,当我尝试使用本机查询时,对于每个父实体,将返回多行,每行包含父实体及其子实体之一的数据。然后返回的列表包含父级的重复对象。假设一个父级有两个子级,那么下面的查询将在列表中返回2个父级,而不是1个。 任何人都知道如何避

  • 我是JPA/JPQL的新手,所以如果这个问题不是很清楚,请原谅。 我正在使用以下JPQL查询: 查询在无状态会话上运行,以便获得DB中当前数据的事实上的快照,该快照与实体管理器分离(因此使用了left join fetch)。 不幸的是,我遇到了两个问题: 在尝试微调性能时,使用本机查询似乎并没有比使用JPQL查询更好的性能。使用本机查询也会产生对象类型的结果,这需要后期处理。

  • 我正致力于将一个单节点akka actor系统应用程序改为akka集群。一个变化是将一种有状态的参与者(在运行时可以有很多)变成集群分片托管实体。现在它在多个节点上运行良好。 我面临的一个问题是如何查询(获取全部)在集群中划分区域所创建的实体。以前在单节点模式下,它使用actor system ActorSelection进行actor路径匹配以获得匹配的actor列表,这在集群分片中不再起作用。

  • RDF的结果:ClassA类型: 在Protege:x1,x2,x3,x4在Eclipse through Jena:x1,x2,x3,x4,x5,x6,x7,x8,X9... 在本体编辑器中,它工作得很好。然而,在Java中,当我执行查询时,我也得到了不属于该类的个体,但它们通过属性与类个体之一相连。有人知道怎么解决吗?本体论是正确的。 null 门生:

  • 本文向大家介绍Android 检索查询参数,包括了Android 检索查询参数的使用技巧和注意事项,需要的朋友参考一下 示例 如果用户点击一个linkto http://www.example.com/map?param1=FOO&param2=BAR,那么param1这里将有一个价值"FOO"和param2将有一个价值"BAR"。