在持久化以及从数据库中检索的同时维护集合顺序的首选方法是什么?
我知道 @OrderBy 更像是一种内存排序,只有当您按照您选择的列的顺序保留行时,它才可能在检索时起作用。
假设我选择使用由数据库序列支持的列,将休眠确保集合中的元素以与集合中相同的顺序保存(例如列表)。
任何想法?
更多细节:
假设我有一个 A 类,它与 B 类具有一对多关系。B 有一个主键字段“Id”,它由 DB 中的序列支持。
Class A {
List<B> bList;
}
我一直想保留 A 中元素 B 的顺序,如下所示:
bList = { b1, b2, b3 }
一种实现方法是使用@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 始终以与列表中出现的顺序相同的顺序持续存在。