結果が得られずに約1時間Googleに頭をぶつけていたので、誰かが休止状態の問題を解決してくれることを願っています。
したがって、問題は、クラスに SortedMap があり、Integer を Key (およびその自然な組み込みの compareTo メソッド) として使用し、別のクラスを値の型として使用していることです。キーを使用して、値の型のユーザー定義の順序を維持し、Hibernate にこれを保持させようとしています。
何らかの理由で、Hibernate はデフォルトで入力したキーを無視し、代わりに値型の主キーをキーとして使用します。データベースから Map をロードすると、すべてのキーがこのように変更されています。
Map の定義を以下に示します (注釈スタイルの Hibernate を使用しています)。
@ManyToMany(cascade = CascadeType.ALL)
@MapKey
@Sort(type = SortType.NATURAL)
private SortedMap<Integer, Column> columnOrder;
Column タイプを使用して順序自体を格納することはできません。Column は、毎回異なるキー値を使用して、包含タイプの多くのインスタンスで使用される可能性があるためです。どんなガイダンスでも大歓迎です。