这是我的情况,我有两个基本的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();
这是每个部分的内容: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,并给出了一个简单的hibernate映射: 我的SQL查询返回的行看起来像这样: 我的hibernate查询如下所示: 这是每个部分的内容:Hibernate文档的18.1.3:http : //docs.jboss.org/hibernate/core/3.6/reference/zh- CN/html/querysql.html#d0e1746
我通常使用JPQL查询数据库,但今天我不得不使用原生查询,因为性能原因和JPQL中没有的特性(联接子查询)。使用JPQL,可以使用join fetch来检索父实体及其子实体集合。然而,当我尝试使用本机查询时,对于每个父实体,将返回多行,每行包含父实体及其子实体之一的数据。然后返回的列表包含父级的重复对象。假设一个父级有两个子级,那么下面的查询将在列表中返回2个父级,而不是1个。 任何人都知道如何避
我需要通过在Hibernate中执行本机查询获得结果集。虽然我使用的是EntityManager,但查询和结果集可能不是实体。 当我尝试下面的代码时,我得到了一个结果。因为我要求的是一个有值的结果。(Hibernate JPA) 结果是:爱丽丝 当我试图从相同的代码中获得多个select out(查询为select name)时,指定来自fresher_test(其中id=1) 这有一种方法,我可
我想在我的repo中写一个本机查询“Select*in from table”。表名与实体名不同。 运行查询时, 1如果我把实体名称返回表未找到。 2如果我将表名放在查询中,则查询的验证失败。 问题是 如果我使用"Select*from TariffPacks r2..., nativeQuery=true",我得到错误TariffPacks不存在。如果我使用"Select*from RECHAR
问题内容: 我有一个关于Hibernate缓存机制的问题。我在文章中已经读到,在hibernate中执行本机SQLquery会使缓存的所有区域无效,因为hibernate不知道它将影响哪个特定实体。在这里,缓存的所有区域都是在讨论二级缓存或二级缓存(一级缓存,二级缓存)或仅二级缓存或仅一级缓存的各个区域吗? 问题答案: 该文章介绍了Hibernate的查询缓存是如何工作的,并原生查询的在现有的高速