hibernate 集合类(Collections)映射

hibernate 集合类(Collections)映射

Hibernate持久化java集合的实例, 包括java.util.Map, java.util.Set, java.util.SortedMap, java.util.SortedSet, java.util.List, 和任何持久实体或值的数组(使用Set集合类型是最好的选择)。类型为java.util.Collection或者java.util.List的属性还可以使用”bag”语义来持久。用于持久化的集合,除了集合接口外,不能保留任何实现这些接口的类所附加的语义(例如:LinkedHashSet带来的迭代顺序)。所有的持久化集合,实际上都各自按照 HashMap, HashSet, TreeMap, TreeSet 和 ArrayList 的语义直接工作。重点:对于一个包含集合的属性来说,必须把Java类型定义为接口 (也就是Map, Set 或者List等),而绝不能是HashMap, TreeSet 或者 ArrayList存在这个限制的原因是,在你不知道的时候,Hibernate暗中把你的Map, Set 和 List 的实例替换成了它自己的关于Map, Set 或者 List 的实现

在使用hashset的时候切记不要出现以下代码,下面代码编译时会出错的:

HashSet<Employee> hashSet = (HashSet<Employee>)depart.getEmps(); 

当运行时,会出现如下的异常:

java.lang.ClassCastException: org.hibernate.collection.PersistentSet cannot be cast to java.util.HashSet 

你可能感兴趣的:(Hibernate,set)