Hibernate-----一对一唯一外键关联映射(映射文件方式)

唯一外键关联:外键关联,本来是用于多对一的配置,但如果加上唯一的限制后,也可用来表示一对一关联关系;是多对一的特例

一、单向关联映射

One(维护端:Person)[‘多端’]

<?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 package="org.app.model">
    <class name="Person" table="t_person">
       <id name="id">
           <generator class="increment"/>
       </id>
       <property name="name"/>

       <!—维护关系:在本端添加一个外键idCard_id指向idCard,并添加唯一属性实现一对一 -->
       <many-to-one name="idCard" column="idCard_id"unique="true" />
    </class>
</hibernate-mapping>

To

One(非维护端:IdCard)[‘一端’]

<?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 package="org.app.model">
    <class name="IdCard" table="t_idCard">
       <id name="id">
           <generator class="increment"/>
       </id>
       <property name="cardNo"/>
    </class>
</hibernate-mapping>

二、双向关联映射

One(维护端:Person)[‘多端’]

<?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 package="org.app.model">
    <class name="Person" table="t_person">
       <id name="id">
           <generator class="increment"/>
       </id>
       <property name="name"/>

       <many-to-one name="idCard"column="idCard_id" unique="true" />
    </class>
</hibernate-mapping>

To

One(非维护端:IdCard)[‘一端’]

<?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 package="org.app.model">
    <class name="IdCard" table="t_idCard">
       <id name="id">
           <generator class="increment"/>
       </id>
       <property name="cardNo"/>

       <!-- property-ref:表示根据Person的idCard外键添加 -->
       <one-to-one name="person"property-ref="idCard"></one-to-one>
    </class>
</hibernate-mapping>
时间: 2024-12-07 02:44:05

Hibernate-----一对一唯一外键关联映射(映射文件方式)的相关文章

011一对一 唯一外键关联映射_单向(one-to-one)

²  两个对象之间是一对一的关系,如Person-IdCard(人—身份证号) ²  有两种策略可以实现一对一的关联映射 主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系:数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联. 唯一外键关联:外键关联,本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联关系. 实例场景:人—-> 身份证号(PersonàIdCard),从IdCard看不到Person对象 对象模型实体类与一对一主键关联

012一对一 唯一外键关联映射_双向(one-to-one)

²  两个对象之间是一对一的关系,如Person-IdCard(人—身份证号) ²  有两种策略可以实现一对一的关联映射 主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系:数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联. 唯一外键关联:外键关联,本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联关系. 实例场景:人<—-> 身份证号(Person<->IdCard)双向:互相持有对方的引用 对象模型(唯一外键关联映

hibernate一对一双向外键关联

一对一双向外键关联:双方都持有对方的外键关联关系. 主控方和一对一单向外键关联的情况是一样的,主要的差异表现为,被空方需要添加: @OneToOne(mappedBy="card") //被控方 主控方必须交给其中的一方去控制,因为不可以双方都同时拥有控制对方的权利,假如是这样的话是没有办法保存成功的.这就是为什么需要指定mappenBy="card"的原因. 1.IdCard.java实体类: package oto_bfk; import javax.persi

hibernate一对一单向外键关联

Husband类里有一个Wife类的引用 wife类: package com.oracle.hibernate; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Wife { private int id; private int age; @Id @GeneratedValue public i

HIBERNATE一对一双向外键联合主键关联

HIBERNATE一对一双向外键联合主键关联: 一. 创建主键类:这个主键必须实现serializedable接口和重写其中的hashCode方法和equals方法:为主键类添加一个叫做@Embeddable的注解和为实体类添加一个叫做@EmbeddabledId的注解

Hibernate-----一对一唯一外键关联映射(注解)

双向关联映射: One('Many') import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.pers

hibernate学习:一对一双向外键关联

一:例子 二:总结 只要是双向关联就需要加上mappedBy 在Husband中: @OneToOne @JoinColumn(name="wife_id") private Wife wife; 在Wife中 @OneToOne(mappedBy="wife") private Husband husband; mappedBy的意思讲维护关系的权利交给husband中的wife对象.在wife中就不建立对应的husband_id关系.

Hibernate5.2之一对一外键关联(五)

                                                 Hibernate5.2之一对一外键关联(五) 一.简介 上篇文章中笔者介绍了Hibernate关联关系中的一对一外键关联,本篇博客将介绍一对一外键关联.其实我们回过头想一想,外键关联其实就是一对多关联关系中将多的一方简化为一个,就是我们本文所要介绍的一对一的外键关联. 二.外键关联 2.1数据库表的创建 create table people ( id varchar2(255 char) not

主键关联、外键关联的区别

主键关联.唯一外键关联 的区别 主键关联是指的一个表的主键和另外一个表的主键关联外键关联是指的一个表的主键和另外一个表的非主键关联 主键关联:    person_t:      person_id      address_id address_t      address_id      address_name 他们通过 address_id 关联是外键关联 person_t:      person_id      persion_name    address_t      perso