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类中的一个