Hibernate 集合接口簡介
java領域模型中,集合屬性的慣用於始終相同
private <<Inteface>> attr = new <<Implementaction>>();//儘可能早得初始化對象,以避免未被初始化的集合
...
//getter and setter
<set>
語義:無序 不允許重複 不保存元素順序
映射接口: java.util.Set 或者 java.util.SortedSet
實現類:java.util.HashSet 或者 java.util.TreeSet
注意:Set對應HashSet;SortedSet對應TreeSet,其中sortedSet可以設置比較器,或者用於內存中的自然排序
<list>
語義:有序 可重複 用額外的索引保存位置
映射接口:java.util.Lits
實現類:java.util.ArrayList
<big>
語義:無序 可重複 不保存元素順序
映射接口:java.util.Collection
實現類:可以用任何的實現Collection接口的類,一般用java.util.ArrayList(list雖然有索引但如果使用big則索引不會被保存)
<idbig>
與big不同的是他提供一個額外的主鍵區分可重複的元素
<map>
語義:保存鍵/值對,鍵不可重複 不保存元素順序
映射接口:java.util.Map 或者 java.util.SortedMap
實現類:java.util.HashMap 或者 java.util.TreeMap
注意:Map對應HashMap;SortedMap對應TreeMap,其中sortedMap可以設置比較器,或者用於內存中的自然順序
<primitive-array><array>
很少使用在領域模型中
關於JPA
jpa沒有列出所有的這些選項,可用的標準集合屬性是Set、List、Collection、Map
關於擴展
如果在以上集合中找不到您所需要的集合接口或者實現,可擴展PersistentCollection;通常擴展現有的PersistentSet、PersistentBag、PersistentList類中的一個