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 句を尊重できると思います。