Hibernate之映射值类型集合(映射list)

来源:互联网 发布:c语言逻辑运算符优先级 编辑:程序博客网 时间:2024/05/02 10:18

pom.xml:

 

 

resources/hibernate.cfg.xml:

 

 

pojo/Item.java:

 

 

pojo/Item.hbm.xml:

根据测试,list中有null值时,null值是插不进集合表中的,但也不会报错。

 

util/HibernateUtil.java:

 

 

util/Manager.java:

 

 

表结构:

 

 

输出sql:

 

 

 


 

 

 

上例中,<list>映射需要把一个索引列新增到集合表。索引列定义元素在集合中的位置。因而,hibernate能够保存集合元素的顺序。映射集合为<list>。

集合表的主键是ITEM_ID和POSITION的复合。注意,现在允许重复元素了,这与列表的语义一致。

持久化列表的索引从0开始,可以改变它,例如在映射中使用<list-index base="1".../>。注意,如果数据库中的索引数字不连续,hibernate就会把空元素添加到java列表中。

 

另一种方法,可以映射一个java数组而不是列表。hibernate支持这个。数组映射事实上与前一个例子是等同的,除了使用不同的元素和属性之外(<array>和<array-index>)。然而,基于前面阐述过的原因,hibernate应用程序很少使用数组。