【发布时间】:2015-02-06 17:07:12
【问题描述】:
我有一个 HQL 查询,我需要在其中获得不同的结果。问题是我正在加入并急切地获取大量其他表,并且最终执行的底层 sql 查询在其中有不同,但是这些结果不可能是不同的,因为它正在选择所有列来自所有加入的实体。然后,Hibernate 似乎对返回的结果集执行了一些“魔术”,以确保我确实获得了我想要的实体的不同结果,但实际上在底层 SQL 查询上运行不同的结果似乎是浪费。查询类似于:
select distinct a from com.blah.A a
inner join fetch a.b b
inner join fetch b.r
left outer join fetch b.c
inner join fetch a.d
inner join fetch a.e
当然,这不是实际的查询,但它是我在做什么的模糊概念。即使当查询返回时 Hibernate 仍然需要进行一些过滤以确保我只获得不同的“A”实体,底层是否需要具有不同的功能?看起来很浪费。
【问题讨论】: