首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hibernate关系投射3——多对一和一对多关联映射

2012-07-15 
Hibernate关系映射3——多对一和一对多关联映射一、多对一和一对多关联映射(多个员工属于同一部门)这几种关联

Hibernate关系映射3——多对一和一对多关联映射

一、多对一和一对多关联映射(多个员工属于同一部门)这几种关联映射后的关系模型都是一致的:

t_employee(id int pk, name varchar, departmentid int fk->t_department(id))
t_department(id int pk, name varchar)

?

1、多对一单向关联


实体模型:
com.lrh.hibernate.Employee(int id, String name, Department department)
com.lrh.hibernate.Department(int id, String name)

?

配置文件:

?<!-- com.lrh.hibernate/Employee.hbm.xml -->
?<hibernate-mapping>?
???? <class name="com.lrh.hibernate.Employee" table="t_employee">?
??????? <id name="id"><generator column="departmentid"/>?
???? </class>?
?</hibernate-mapping>


<!-- com.lrh.hibernate/Department.hbm.xml -->???
?<hibernate-mapping>?
??? <class name="com.lrh.hibernate.Department" table="t_department">?
??????? <id name="id"><generator table="t_employee">?
??????? <id name="id"><generator table="t_department">?
??????? <id name="id">
??????? ?<generator table="t_employee">?
???????? <id name="id"><generator column="departmentid"/>?
???? </class>?
</hibernate-mapping>

?

配置文件:

?<!-- com.lrh.hibernate/Department.hbm.xml -->

?<hibernate-mapping>?
???? <class name="com.lrh.hibernate.Department" table="t_department">?
???????? <id name="id"><generator class="native"/></id>?
???????? <property name="name"/>?
???????? ?<!--? 双向关联中,为<set>加入”inverse=true”可以反转维护关系:
???????? ?????? Hibernate将放弃从一的一端维护。也就是employee和department的关系必须使用employee维护,
???????? ??????????????????? 操作department时Hibernate将不维护这个关系。
???????? ?? -->
???????? <set name="employees">?
???????????? <!-- <key>指定引用至自身的外键表(t_employee)中的外键 -->
??????????? <key column="departmentid"/>?
???????????? <!-- <one-to-many>映射一对多关系 -->
???????????? <one-to-many class="com.lrh.hibernate.Employee"/>?
???????? </set>?
???? </class>?
?</hibernate-mapping>

?

热点排行