OK、これは Hibernate の (別の) バグ/実装されていない機能のように見えます。
HQLSet
の句が尊重されるように関連付けをマッピングすることは可能ですか?"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>
。これにより、すべての SQL クエリに "order by" が追加されますが、これは望ましくありません - 繰り返します
<set order-by="orderIndex">
が、これはすべてのクエリに適用されます。
デバッグ中、使用されている Set の実装org.hibernate.collection.PersistentSet
はSet
. ラップの実装Set
はHashSet
. Hibernate はLinkedHashSet
代わりに a を使用できるほど賢く、私の " order by
" HQL 句を尊重できると思います。