之前在配置一对多的时候,使用的集合的类型为Set,无序,不能重复。
现在说一下,list集合的配置方式,list集合有序,可以重复。
list集合在xml文件夹中的配置方式:
其中list-index表示的是集合中元素的顺序,order_col会在数据库中显示新的一列。
有时候根本不需要配置顺序,所以对应的list集合会有另外一种映射方式:
这样的配置方式就和set配置是一样的了,但是保存到数据库中的数据是没有顺序的。
Map集合的映射:
private Map<String,Employee> emps;
数组映射:
Employee[] emps;
映射文件的配置和list的配置是类似的。
如何选择应该使用那种集合?
1.绝大多数使用的集合是set集合。
2.想要保证集合中的顺序需要list
3.想用list但不需要顺序就用bug.
需要注意的事项:
1.在hibernate中不能将
Set<Employee> emps;
定义成HashSet<Employee>的,否则会报错。
2.hashSet不能进行类型转换,保存的时候hibernate内部处理为PersistentSet。