好的,这看起来很像 Hibernate 中的(另一个)错误/未实现的功能。
是否可以以尊重 HQL 中的子句的方式映射Set
关联?"order by"
例如,假设您有 2 个实体:PageEntity
和QuestionEntity
. 一个页面有一个集合。
如何使以下 HQL 工作:
from
PageEntity p
left outer join fetch p.questionEntities q
order by
q.orderIndex
我不想要的:
- 在 Java 中使用排序(我们在 SQL 中有“排序依据”,所以我们不必这样做!)。SortedSet、Comparators 等是不可能的
- 将其映射为带有
<list-index>
. 这会将“order by”添加到所有 SQL 查询中,我不想要这个 - 再次使用 a
<set order-by="orderIndex">
因为,这将应用于所有查询
调试时,我看到正在使用的 Set 的实现是org.hibernate.collection.PersistentSet
包装了一个Set
. 包装的实现Set
是HashSet
. 我希望 Hibernate 足够聪明,可以使用 aLinkedHashSet
代替,这样它就可以尊重我的 " order by
" HQL 子句。