我有一個對象列表,列表中的每個對象都有一個位置,除非明確更改,否則這些位置不會更改,換句話說,對象位於隊列中。我應該在實體類中使用什麼樣的集合來存儲這些對象,以及該集合應該如何註釋?如何保證集合中項目的順序
我現在有這個
@Entity
class Foo {
...
@OneToMany(mappedBy = "foo", cascade = CascadeType.ALL)
List<Bar> bars = new ArrayList<Bar>();
...
}
如果這是不可能的JPA單純,我使用的EclipseLink作爲我JPA提供商,所以具體的EclipseLink註解會確定,如果沒有別的幫助。
編輯:注意人,問題不是Java不會保存順序,我知道大多數集合都這樣做,問題是我不知道JPA保存順序的智能方式。有一個訂單ID和查詢順序是可能的,但在我的情況下維護訂單ID是費力(因爲用戶界面允許重新排序項目),我正在尋找一個更聰明的方式來做到這一點。
雖然查詢後排序將是一種選擇,提問的問題是不是與使用的數據結構,但JPA提供程序確定列表項插入的順序。我沒有答案(我正在尋找相同的問題),我可以說這個答案正在解決錯誤的問題。 – metasim 2012-12-04 20:27:36