一尘不染

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

hibernate

这是我的情况,我有两个基本的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

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


阅读 239

收藏
2020-06-20

共1个答案

一尘不染

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

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

2020-06-20