您的位置:首页 > 编程语言 > Java开发

Hibernate hbm 外键关联——SSH (Spring+Struts+Hibernate)框架搭建之配置文件序列六

2014-05-31 20:21 585 查看
hibernate管理数据库后,bbm.xml的关联配置很重要,<many-to-one> 与<one-to-many>一定要配置正确

继上次介绍了:

Struts2——SSH (Spring+Struts+Hibernate)框架搭建之配置文件序列一

Spring——SSH (Spring+Struts+Hibernate)框架搭建之配置文件序列二

Spring beans——SSH (Spring+Struts+Hibernate)框架搭建之配置文件序列三

Hibernate——SSH (Spring+Struts+Hibernate)框架搭建之配置文件序列四

Hibernate hbm——SSH (Spring+Struts+Hibernate)框架搭建之配置文件序列五

下面来介绍一下与表的关联相关的Teacher.hbm.xml的配置

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="net.cxiny.po">
<class name="Teacher" table="teacher">
<id name="tid" column="tid">
<generator class="native"/>
</id>
<property name="name" length="45" not-null="true"/>
<many-to-one cascade="save-update,persist" name="subject" column="bid" foreign-key="fk_teacher_bid_subject_bid" />
<many-to-one cascade="save-update,persist" name="role" column="rid" foreign-key="fk_teacher_rid_role_rid" />
<many-to-one cascade="save-update,persist" name="position" column="pid" foreign-key="fk_teacher_pid_position_pid" />
</class>
</hibernate-mapping>
上面的是多对一,用的是<many-to-one>对于职位的外键:fk_teacher_pid_position_pid,即teacher表的pid字段关联position表的pid字段

下面是Position.hbm.xml的相关配置

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="net.cxiny.po">
<class name="Position" table="position">
<id name="pid" column="pid">
<generator class="native"/>
</id>
<property name="pname" length="45" not-null="true"/>
<set name="teachers" cascade="save-update,persist">  <!-- 本model中的属性 -->
<!-- Teacher表中的pid属性值参照Position表中的pid -->
<key  column="pid" foreign-key="fk_teacher_pid_position_pid"/>
<!-- 一对多,set中放置的是Teacher -->
<one-to-many  class="Teacher"/>
</set>
</class>
</hibernate-mapping>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: