hibernate学习之——one-to-many(双向一对多关系)

来源:互联网 发布:若宇网络 编辑:程序博客网 时间:2024/05/20 06:41

hibernate自主学习,汤阳光hibernate视频例子。

这里有两个实体类Department部门(one),Employee员工(many)。


Department配置文件:

<?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.bean"><class name="Department" table="department"><id name="id" column="id" type="int"><generator class="native" /></id><property name="name" type="string" column="name" length="30"></property><!-- employees属性,employees集合,表达本类与Employee集合的一对多关系,对应数据库表是employeekey子元素column:对方表中的外键列(many的一方)class属性:关联的实体类(many的一方)inverse属性:默认为false:表示本方维护关联关系true:表示本方放弃维护关联关系 --><set name="employees" table="employee" inverse="false"><key column="departmentId"></key><one-to-many class="Employee" /></set></class></hibernate-mapping>


Employee配置文件:

<?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.bean"><class name="Employee" table="employee"><id name="id" column="id" type="int"><generator class="native" /></id><property name="name" type="string" column="name" length="30"></property><!-- class属性:指定关联的类name属性:关联类在数据库中的命名column:外键列名。必须与关联类中key子元素column相同。 --><many-to-one class="Department" name="department" column="departmentId"></many-to-one></class></hibernate-mapping>

解释:

department中定义了一个自动增长主键id,和一个string类型的部门name。

employee中也定义了一个主键id,string类型的员工name,以及一个外键departmentId,关联到department表中主键id,实现(部门—员工)的一对多关系。

department配置中,department是one的一方,所以配置文件属性为<one-to-many class="Employee"/>,一个部门对应多个员工。

employee,员工是many的一个方,所以是<many-to-one class="Department" />,多个员工对应一个部门。 

0 0
原创粉丝点击