Hibernate单向“一对一”关联

本文介绍了Hibernate中单向一对一关联的三种实现方式:基于外键、基于连接表和基于主键关联。详细解析了配置代码,包括many-to-one和one-to-one的用法,强调了unique属性在确保一对一关系中的作用。关联始终为单向,另一端无需额外配置。
摘要由CSDN通过智能技术生成

1. 基于外键关联单向“一对一”关联
其中指定many-to-one的unique="true",为单向“一对一”,不指定就是单向“多对一”

<class name="Person">
    <id name="id" column="personId"><generator class="native"/></id>
    <many-to-one name="address" column="addressId" unique="true" class="Address" />
</class>

2. 基于连接表单向“一对一”关联,是一种很少见的情况,不推荐使用
其中指定many-to-one的unique="true",为单向“一对一”,不指定就是单向“多对一”

<class name="Person">
    <id name="id" column="personId"><generator class="native"/></id>
    <join table="PersonAddress" optional="true">
        <key column="personId" unique="true"/>
        <many-to-one name="address" column="addressId"  unique="true" class="Address" not-null="true"/>
    </join>
</class>

无论使用使用上面哪种方式,关联是单向的,另外一端无需额外配置

<class name="Address">
    <id name="id" column="addressId"><generator class="native"/></id>
</class>

3. 基于主键关联向“一对一”关联,不常用,通常使用一个特定的id 生成器并需要转变关联的方向

<class name="Person">
    <id name="id" column="personId"><generator class="native"/></id>
 </class>

<class name="Address">
    <id name="id" column="personId">
        <generator class="foreign">
            <param name="property">person</param>
        </generator>
    </id>
    <one-to-one name="person" constrained="true"/>
</class>


from :http://blog.163.com/zjm701@126/blog/static/12846351120125864319648/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值