ОК, это выглядит как (еще одна) ошибка / не реализованная функциональность в Hibernate.
Можно ли отобразить ассоциацию Set
таким образом, чтобы соблюдалось условие "order by"
в HQL?
Например, скажем, у вас есть 2 сущности: PageEntity
и QuestionEntity
.На странице есть набор.
Как заставить работать следующий HQL:
from
PageEntity p
left outer join fetch p.questionEntities q
order by
q.orderIndex
Чего я не хочу:
- для использования сортировки в Java (у нас есть «order by» в SQL, поэтому нам не нужно этого делать!).SortedSet, Comparators и т. Д. Исключены
- , чтобы отобразить его как список с
<list-index>
.Это добавит "order by" ко всем запросам SQL, и я не хочу, чтобы - использовал
<set order-by="orderIndex">
, потому что, опять же, это будет применяться ко всем запросам
Отладка, я вижу, что используемая реализация Set - это org.hibernate.collection.PersistentSet
, которая включает Set
.Реализация обёрнутого Set
составляет HashSet
.Я ожидаю, что Hibernate будет достаточно умен, чтобы использовать вместо него LinkedHashSet
, чтобы он мог выполнить мое предложение "order by
" HQL.