[转]hibernate 集合类(Collections)照射(二)- List
二、List集合映射 1. 实体类: 实体类还是采用Department和Employee,详见我写的多对一(many-to-one)文章,在它们的基础上进行修改如下所示: 将原Department实体类中的Set替换成List,如下所示: Java代码 package com.reiyen.hibernate.domain; public class Department { private int id; private String name; private List<Employee> emps; //Setter和Getter方法 } package com.reiyen.hibernate.domain; public class Department { private int id; private String name; private List<Employee> emps; //Setter和Getter方法 }在原Employee实体类中增加了重写的toString()方法,方法如下: Java代码 @Override public String toString() { return "id=" + this.id + " name=" + this.name; } @Override public String toString() { return "id=" + this.id + " name=" + this.name; } 2. 配置文件: 修改Department.hbm.xml配置文件,其它的还是保持以前的不变,修改的Department.hbm.xml配置文件如下: Xml代码 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.reiyen.hibernate.domain"> <class name="Department" > <id name="id" > <generator class="native" /> </id> <property name="name" /> <!-- <set name="emps"> <key column="depart_id" /> <one-to-many class="Employee"/> </set>--> <list name="emps"> <key column="depart_id" /> <!-- list-index:用来记录加入list集合的元素的顺序 ,会一定程度影响性能,所以可以使用bag替代list--> <list-index column="order_col" /> <one-to-many class="Employee"/> </list> </class> </hibernate-mapping> <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.reiyen.hibernate.domain"> <class name="Department" > <id name="id" > <generator class="native" /> </id> <property name="name" /> <!-- <set name="emps"> <key column="depart_id" /> <one-to-many class="Employee"/> </set>--> <list name="emps"> <key column="depart_id" /> <!-- list-index:用来记录加入list集合的元素的顺序 ,会一定程度影响性能,所以可以使用bag替代list--> <list-index column="order_col" /> <one-to-many class="Employee"/> </list> </class> </hibernate-mapping> 3.测试类(只是对many-to-one中的测试类进行了少量的修改),如下所示: