`

十、一对一关联

 
阅读更多

1    一对一单向外键关联
Annotation: 在被约束表字段的get方法上加@0ne20ne @JoinColumn
            @OneToOne
            @JoinColumn(name="wifeid", unique = true) //指定生成的数据库字段名,以及设置唯一性
            public Wife getWife() {
                return wife;
            }


2     一对一双向外键关联
Annotation: @0ne20ne(mappedBy=”…”)
    规律:凡是双向关联,必设mappedBy
        在Wife类中 写Husband对象属性 并添加注解@OneToOne(mappedBy="wife") mappedBy作用
是指定这个一对一关联是被Husband类的 wife属性(准确说是getWife方法)做的映射
@OneToOne(mappedBy="wife")
        public Husband getHusband() {
        return husband;
        }
        在 类中写Wife对象属性
            @OneToOne
            @JoinColumn(name="wifeid") //指定生成的数据库字段名
            public Wife getWife() {
                return wife;
            }
        此注释将由Husband表中生成wifeid字段作为fk外键,wife表中不生成额外的Husbandid字段

特别说明: 一对一单向外键关联与一对一双向外键关联在数据库的表的格式是一样的,区别在于
java程序中. 双向外键关联可通过Hibernate在两个类间互相调用彼此,而单向外键关联只能单方向调用.

 

3    一对一单向主键关联(不重要)
@primaryKeyJoinColumn

4    一对一双向主键关联(不重要)
@primaryKeyJoinColumn

 

5    联合主键
   @JoinColumns
    Wife类中建立联合主键,建立方式参考 ID生成策略中的联合主键部分
    Husband类中写Wife对象属性,并在其get方法上写@OneToOne即可完成一对一外键映射
    若想要指定生成的外键名 则需使用@JoinColumns注解,如下:
    @OneToOne
    @JoinColumns( { @JoinColumn(name = "wifeid", referencedColumnName = "id"),
            @JoinColumn(name = "wifename", referencedColumnName = "name") })


    @JoinColumns用于在一对一外键关联存在联合主键情况时指定生成的外键字段名称
    @JoinColumns的参数为@JoinColumn数组 @JoinColumn内除需指定name属性外还需指定
    referencedColumnName属性值 作用是可指定生成的字段名所对应的目标表字段名
    public Wife getWife() {……}

 

        生成sql语句如下:

        alter table Husband
        add index FKAEEA401BC089B209 (wifeId, wifeName),
        add constraint FKAEEA401BC089B209
        foreign key (wifeId, wifeName)
        references Wife (id, name)

分享到:
评论

相关推荐

    一对一关联

    一对一关联(OneToOne)在关系型数据库设计中是一种常见的实体关系模型,用于表示两个表之间的一种强关联,其中一张表的某条记录唯一对应另一张表的一条记录。这种关联通常通过外键(Foreign Key)来实现,确保数据...

    hibernate一对一关联关系

    本资源主要探讨的是“hibernate一对一关联关系”。 一对一关联关系在现实世界中很常见,比如一个人只有一个身份证,或者一个公司的总部只有一个。在Hibernate中,设置一对一关联关系可以帮助我们更好地管理和操作...

    php:连表查询一对一和关联模型一对一

    php:连表查询一对一和关联模型一对一,php:连表查询一对一和关联模型一对一php:连表查询一对一和关联模型一对一php:连表查询一对一和关联模型一对一php:连表查询一对一和关联模型一对一php:连表查询一对一和...

    Hibernate双向一对一关联映射(注解版)

    本主题聚焦于“Hibernate双向一对一关联映射”的注解实现,这是一种高级的数据库设计模式,用于处理两个实体之间一对一的关系。 在Hibernate中,一对一关联映射分为单向和双向。单向一对一映射通常涉及一个实体持有...

    MyBatis的一对一关联映射

    一对一关联映射是指两个实体类之间存在一对一的关系,即每个实体实例对应数据库中的一条记录,且这条记录在另一张表中也有唯一对应的记录。在 MyBatis 中,我们可以通过 XML 映射文件或者注解来配置这种关联关系。 ...

    JPA中的一对一双向关联

    在Java Persistence API (JPA) 中,一对一双向关联是一种关系映射,它允许两个实体类之间存在一对一的关系,并且每个实体都能引用对方。这种关联是双向的,意味着每个实体都可以通过自己的属性访问到另一个实体。...

    ibatis配置多表关联(一对一、一对多、多对多

    ibatis配置多表关联(一对一、一对多、多对多

    hibernate一对一主键关联映射(单项关联)

    - **唯一性约束**:在数据库层面,为了确保一对一关联,通常需要添加唯一性约束。例如,`IdCard`表的`person_id`列应具有唯一性约束。 以上就是关于Hibernate中一对一主键关联映射(单项关联)的详细解释。通过这种...

    Hibernate一对一唯一外键关联映射(双向关联)

    一对一关联在现实世界中很常见,例如一个人只有一个身份证,一个身份证也只能属于一个人。在数据库设计中,这种关系通常通过主键和外键的方式实现,其中一方的主键作为另一方的外键,确保了两表间的一对一关系。 二...

    hibernate一对一之唯一外键关联(双向关联)

    - 虽然一对一关联提供了便利,但过多的一对一关联可能会影响性能,因为每次查询可能涉及多个表,增加数据库访问的复杂性。因此,应谨慎设计实体间的关系。 8. **实例应用** - 在实际项目中,一对一关联常用于用户...

    Hibernate一对一主键关联映射(单向关联)

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系映射方式之一,尤其在处理两个实体之间存在唯一对应关系时非常有用。本篇将重点讲解如何实现一对一主键关联映射的单向关联,并通过一个...

    Hibernate ORM - 一对一连接表关联关系

    2. **一对一关联(One-to-One)**: 在数据库设计中,一对一关联意味着两个实体之间存在唯一的关系,即每个实体实例仅对应另一个实体的一个实例。例如,一个用户可能有一个唯一的身份证信息。 3. **注解配置**: ...

    Hibernate一对一主键关联映射(双向关联)

    一对一关联分为两种:基于主键的关联(Primary Key Association)和基于外键的关联(Foreign Key Association)。在基于主键的关联中,两个实体共享相同的主键,而在基于外键的关联中,一方实体的主键作为另一方实体...

    MyBatis框架的学习(五)——一对一关联映射和一对多关联映射

    在本篇关于MyBatis框架的学习中,我们将深入探讨一对一关联映射和一对多关联映射的概念、配置以及在实际开发中的应用。MyBatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件或者注解中,从而...

    Hibernate 一对一关联映射(主键关联VS唯一外键关联)

    本篇文章将深入探讨两种实现一对一关联的方式:主键关联(Primary Key Join)和唯一外键关联(ForeignKey Join),并结合源码和实际工具进行详细讲解。 一、主键关联(Primary Key Join) 1. 主键关联的概念: ...

    hibernate主键实现一对一单向关联关系源码

    首先,我们需要理解一对一关联关系的基本概念。在数据库中,一对一关系意味着两个表中的每一条记录都对应另一表中的唯一一条记录。在Hibernate中,这种关系可以通过共享主键或外键来实现。由于题目中提到的是“主键...

    hibernate外键实现一对一单向关联关系源码

    **一对一关联关系**在数据库设计中表示两个表之间存在唯一的对应关系,例如,一个人可能只有一个护照,或者一个员工只有一个职位。在Hibernate中,这种关系可以通过外键(Foreign Key)在一方或双方实体中实现。 **...

    hibernate使用主键关联的一对一关系

    在Java的持久化框架Hibernate中,一对一(OneToOne)关系是一种常见的对象关系映射(ORM)配置,用于表示两个实体类之间的一种唯一关联。在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来...

    Springboot中mybatis表关联映射关系(一对一)

    在本文中,我们将详细介绍 Springboot 中 MyBatis 表关联映射关系的实现机制,特别是针对一对一关联关系的实现。 一对一关联关系是一种非常常见的关联关系,例如,一个学生只有一个学生证,同时一个学生证也只对应...

    Mybatis实现一对一关联查询(Mysql数据库)

    在Java开发中,Mybatis作为一款轻量级的持久层框架,被广泛应用于数据访问操作。本主题将详细探讨如何在Mybatis中实现...总之,正确配置Mybatis的映射文件和Java实体类,可以轻松地实现数据库中一对一关联的查询操作。

Global site tag (gtag.js) - Google Analytics