博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
012一对一 唯一外键关联映射_双向(one-to-one)
阅读量:5756 次
发布时间:2019-06-18

本文共 1676 字,大约阅读时间需要 5 分钟。

²  两个对象之间是一对一的关系,如Person-IdCard(人—身份证号)

²  有两种策略可以实现一对一的关联映射

  • 主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系;数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联。
  • 唯一外键关联:外键关联,本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联关系。

实例场景:人<—-> 身份证号(Person<->IdCard)双向:互相持有对方的引用

对象模型(唯一外键关联映射-双向):

IdCard实体类:

public class IdCard {    private int id;    private String cardNo;     private Person person; //持有Person对象的引用    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getCardNo() {        return cardNo;    }    public void setCardNo(String cardNo) {        this.cardNo = cardNo;    }    public Person getPerson() {        return person;    }    public void setPerson(Person person) {        this.person = person;    }}

 

Person实体类:

 

 

public class Person {    private int id;    private String name;       private IdCard idCard;//持有IdCard对象的引用    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public IdCard getIdCard() {        return idCard;    }    public void setIdCard(IdCard idCard) {        this.idCard = idCard;    }}

 

Person实体类映射文件:

 

 

IdCard实体类映射文件:

 

 

总结:

一对一 唯一外键 关联映射 双向 需要在另一端(当前IdCard),添加<one-to-one>标签,指示hibernate如何加载其关联对象(或引用对象),默认根据主键加载(加载person),外键关联映射中,因为两个实体采用的是person的外键来维护的关系,所以不能指定主键加载person,而要根据person的外键加载,所以采用如下映射方式

 

 

 

 

转载地址:http://yackx.baihongyu.com/

你可能感兴趣的文章
AsyncTask简易使用
查看>>
关于PHP sessions的超时设置
查看>>
HAProxy负载均衡原理及企业级实例部署haproxy集群
查看>>
开源中国动弹客户端实践(三)
查看>>
Win 8创造颠覆性体验:预览版关键更新
查看>>
vim在多文件中复制粘贴内容
查看>>
Android ContentObserver
查看>>
文章“关于架构优化和设计,架构师必须知道的事情”
查看>>
疯狂java学习笔记1002---非静态内部类
查看>>
ISA2006实战系列之一:实战ISA三种客户端部署方案(上)
查看>>
TCP服务器
查看>>
U-Mail邮件系统与泛微OA系统一体化操作指南
查看>>
AC旁挂三层交换机管理ap,二层接入ap心得
查看>>
JS中比较数字大小
查看>>
springcloud 学习-eureka搭建-为eureka添加认证
查看>>
jQuery插件的开发
查看>>
基础,基础,还是基础之JAVA基础
查看>>
如何成为一个C++高级程序员
查看>>
ant android 打包签名和渠道
查看>>
一个简单的接口,被调用并同步给出响应的方法
查看>>