Java乔晓松-Hibernate关联映射
l 关联映射
多对一(Employee - Department)
映射文件<many-to-one name=”depart” column=”depart_id”/>
ER图
一对多(Department-Employee)
<setname=”employees”>
<key column=”depart_id”/>
<one-to-many class=”Employee”/>
</set>
一对一(Person - IdCard)
1)基于主键的one-to-one(person的映射文件)
<idname=”id”>
<generator class=”foreign”><param name=”property”>idCard</param></generator>
<id>
<one-to-onename=”idCard” constrained=”true”/>
一对一(Person - IdCard)
2)基于外健的one-to-one,可以描述为多对一,加unique=“true”约束
<one-to-onename=”idCard” property-ref=“person”/>
property-ref用于指定关联类的一个属性,这个属性将会和本外键相对应
<many-to-onename=”person” column=”person_id” unique=”true” not-null=”true”/>
<!-唯一的多对一,其实就便成了一对一了-->
多对多(teacher - student)
在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使用中最好转换成一对多的对象模型;Hibernate会为我们创建中间关联表,转换成两个一对多。
<setname="teacher" table="teacher_student">
<keycolumn="teacher_id"/>
<many-to-manyclass="Student" column="student_id"/>
</set>