永続化中およびデータベースからの取得中にコレクションの順序を維持するための推奨される方法は何ですか?
@OrderBy は、選択した列の順序で行を保持する場合にのみ取得する場合にのみ機能するメモリ内の並べ替えであることを知っています。
データベース シーケンスに基づく列を使用することを選択したとします。コレクション内の要素がコレクション内と同じ順序で永続化されるように休止状態になります (たとえば、リスト)。
何か考えはありますか?
詳細:
クラス B と 1 対多の関係にあるクラス A があるとします。B には、DB のシーケンスに基づく主キー フィールド「Id」があります。
Class A {
List<B> bList;
}
以下のように、要素 B の順序を A に保持したいと常に考えていました。
bList = { b1, b2, b3 }
これを実現する 1 つの方法は、@OrderBy (「Id ASC」) を使用することです。これは、リスト B が次の順序で永続化されている場合にのみ機能します。
----------------
Id ----bValue
----------------
1------ b1
2------ b2
3-------b3
------------------
ID順なので取得すると順番が保たれます。
コレクション B が次のように永続化されているとします。
----------------
Id ----bValue
----------------
1------ b2
2------ b1
3-------b3
------------------
取得すると、リスト B の順序がトスになります (Id 列による順序であるため)。だから私の質問は、コレクション B がリストに表示される順序と同じ順序で常に保持されるかどうかです。