Hibernate Native SQL Query, извлекающий объекты и коллекции

Это моя ситуация, у меня есть два основных POJO, которым я дал простое отображение в спящем режиме:

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

Мой запрос гибернации выглядит так:

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

Это в разделе: 18.1.3 документации по гибернации: http://docs.jboss.org/hibernate/core/3.6/reference/en-US/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

Кто-нибудь знает, можно ли получить то, что я хочу, используя этот метод?

19
задан yglodt 17 August 2016 в 06:44
поделиться