2014-01-15 99 views
0

剛學習Hibernate。 在列表類型屬性映射中,似乎需要在保持列表的同時編寫「list-index」。這包含列表中元素的索引/位置。休眠列表和設置映射

爲什麼這個「list-index」是必需的?在從數據庫重新加載的同時重建列表?

如果是這樣的話,Hibernate不能僅僅依靠插入的順序作爲重建的基礎,而不是依賴這個「list-index」?

此外,在集合中,我們沒有像「set-index」這樣的東西是否因爲在一個設置的位置並不重要?如HashSet或TreeSet(排序版本)等

回答

1

如果是這樣的話,Hibernate不能只是將插入順序作爲重建的基礎而不是依賴這個「list-index」?

答案是否定的。因爲在數據庫的行中,固有地沒有秩序感。沒有人能保證你可以得到查詢的結果,當你將它插入到數據庫中時就會被排序。因此爲了跟蹤索引,Hibernate還需要保留索引列。

但是生成HashSets和TreeSets並不取決於元素的順序。如果散列方法和/或比較方法是已知的,那麼使用它們的HashSets和/或TreeSet可以僅從該組元素構建。