public class Department
{
private Integer deptId;
private String deptName;
private Set<Employee> empSet; // 关系对象集合
}
public class Employee
{
private Integer empId;
private String empName;
private Department dept; // 关系对象属性
}
--------------------------------------------------------------
<hibernate-mapping package="entity">
<class name="Employee" table="employee">
<id name="empId">
<generator class="native" />
</id>
<property name="empName"></property>
<!-- <property name="deptId"></property> 已经在下面配置了该列,就不能重复配置了-->
<many-to-one name="dept" class="Department" cascade="save-update" lazy="false"> // 引用 关系对象deptId
<column name="deptId"></column>
</many-to-one>
</class>
<class name="Department" table="department">
<id name="deptId">
<generator class="native" />
</id>
<property name="deptName"></property>
<set name="empSet" cascade="save-update" lazy="false" inverse = "true"> // 关系对象 引用 deptId
<key column="deptId"></key>
<one-to-many class="Employee"></one-to-many>
</set>
</class>
</hibernate-mapping>
一对多关系映射要注意的问题:
1.多对一方,配置关系属性时,切莫要重复配置关系外键
2.多对一方,lazy属性要为false,即禁用懒加载,直接加载关系对象
如果一个表与其它表有很多关系 既有 一对一 又有一对多,那就先配置 一对一 再配置 一对多。
保证每一对关系都正确,那么再多的关系配置也是在一对一对的基础上加起来的。
只要细心的保证每一列都有配置,每一列都没有重复配置,一般是不会出错的。