Hibernate的关联映射

来源:互联网 发布:海马模拟器 for mac 编辑:程序博客网 时间:2024/05/29 02:29

一. 多对一
例如:人>>>>组
java类当中
这里写图片描述

数据库中:在多的一端维护一个多指向一的关系,数据库会在多一端的表中增加一个外键字段,指向一的主键
这里写图片描述

测试部分代码如下:
这里写图片描述
Group.hbm.xml:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>    <class name="com.test.model.Group" table="n_1group">        <id name="groupId">            <generator class="native"></generator>        </id>        <property name="groupName" type="java.lang.String"></property>    </class></hibernate-mapping>

Person.hbm.xml: 多的一端使用<many-to-one>标签,name属性指定关联类在本类中的属性名,column属性指定外键的列名。Cascade属性能让hibernate在操作多的一端时对一的一端进行级联操作。

Cascade属性可选的值有:
all : 所有情况下均进行关联操作。
none:所有情况下均不进行关联操作。这是默认值。
save-update:在执行save/update/saveOrUpdate时进行关联操作。
delete:在执行delete时进行关联操作。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>    <class name="com.test.model.Person" table="n_1person">        <id name="id">            <generator class="native"></generator>        </id>        <property name="name" type="java.lang.String"></property>        <property name="age" type="java.lang.Integer"></property>        <many-to-one name="group" column="groupId" cascade="save-update"/>     </class></hibernate-mapping>
0 0