您的位置:首页 > 其它

Hibernate单向关联比较

2016-04-10 21:17 411 查看
1、多对一关联

场景:多个用户对应一个地址(在多的一方配置关联)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC 

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

    

    <hibernate-mapping package="com.caokaiyuan.domain">

    <class name="User" table="tb_user">

    <!-- 配置主键映射 -->

    <id name="id" column="id">

    <generator class="increment"/>

    </id>

    <property name="username"/>

    <property name="password"/>

    <!-- 配置多对一映射 配置的信息有:关联的属性、类名,外键的名称 -->

    <many-to-one name="address" class="Address" column="address_id">

    </many-to-one>

    </class>

    </hibernate-mapping>

2、一对多关联

场景:一个地址对应多个街道(在一的一方配置关联)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC 

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

    <hibernate-mapping package="com.caokaiyuan.domain">

    <class name="Address" table="address">

    <!-- 配置主键映射 -->

    <id name="addressId" column="address_id">

    <generator class="increment"/>

    </id>

    <!-- 配置属性映射 -->

    <property name="addressDetail"/>

   

    <!-- 配置一对多映射 cascade级联关系 -->

    <set name="street" cascade="all">

<!--  外键名称 -->

    <key column="address_id"/>

<!-- 配置一对多映射 -->

    <one-to-many class="Street"/>

    </set>

    </class>

    </hibernate-mapping>

3、一对一关联

场景:一条街道对应一个学校(在任意一方配置关联 这里在街道配置关联)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC 

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

    <hibernate-mapping package="com.caokaiyuan.domain">

    <class name="Street" table="tb_street">

    <!-- 配置主键映射 -->

    <id name="streetId" column="street_id">

<!--  这里用外键(学校的主键)配置主键 -->

    <generator class="foreign">

    <param name="property">school</param>

    </generator>

    </id>

    <!-- 配置其他属性 -->

    <property name="streetName"/>

   

    <!-- 配置一对一映射 -->

    <one-to-one name="school"></one-to-one>

    </class>

    </hibernate-mapping>

总结:主要是配置关联关系时的区别,A对B关联,在A的一方配置关联,一对多,多对一,一对一的关联区别看上面的配置文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate 关联