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

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集合的一对多关系,对应数据库表是employee
			key子元素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" />,多个员工对应一个部门。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值