mappedBy: 
1>只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性; 
2>mappedBy标签一定是定义在被拥有方的,他指向拥有方; 
3>mappedBy的含义,应该理解为,拥有方能够自动维护跟被拥有方的关系,当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的; 
4>mappedBy跟joinColumn/JoinTable总是处于互斥的一方,可以理解为正是由于拥有方的关联被拥有方的字段存在,拥有方才拥有了被拥有方。mappedBy这方定义JoinColumn/JoinTable总是失效的,不会建立对应的字段或者表。

下面是一个例子: 
   人跟身份证双向关联 
   在Person里面定义的注解:

在person里面定义的注释代码  
  1. @OneToOne(cascade = CascadeTye.ALL,optional = true)
  2. public IDCard getIdCard(){
  3. return idCard;
  4. }
在idcard里面定义的注释代码  
  1. @OneToOne(cascade = CascadeType.ALL,mappedBy = "idCard",optional = false)
  2. public Person getPerson(){
  3. return person;
  4. }

多了一个mappedBy这个方法,他表示什么呢?它表示当前所在表和Person的关系是定义在Person里面的idCard这个成员上面的,他表示此表是一对一关系中的从表,也就是关系是在person表中维护的,这是最重要的。Person表是关系的维护者,有主导权,它有个外键指向IDCard。 
我们也可以让主导权在IDCard上面,也就是让他产生一个指向Person的外键,这也是可以的,但是最好让Person来维护整个关系,这样更符合我们的思维。 
我们也可以看到在Person里面的IDCard是注释optional=true,也就是说一个人是可以没有身份证的,但是一个身份证是不可以没有人的,所以在IDCard里面注释Person的时候,optional=false了,这样就可以防止一个空的身份证记录进数据库。

转载自:http://shenyuc629.iteye.com/blog/1681225

hibernate的注解属性mappedBy详解相关推荐

  1. Hibernate配置文件与映射文件详解

    Hibernate是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架. 我们先看一下官方文档所给出的,Hibernate 体系结构的高层视图: 其中PO=P ...

  2. css中float详解,CSS浮动属性Float详解?史上最全Float详解

    我们在学习css样式的时候,都知道css是盒概念,并且每一个盒子都是一个元素,下面我们就对CSS浮动属性Float进行详解,让你彻底了解Float. 一:什么是Float浮动? Float浮动是css ...

  3. 源代码下载 第六章 注解式控制器详解

    2019独角兽企业重金招聘Python工程师标准>>> 源代码请到附件中下载. 其他下载: 跟着开涛学SpringMVC 第一章源代码下载 第二章 Spring MVC入门 源代码下 ...

  4. 文件的复制、移动、压缩等对SELinux属性关系详解

    文件的复制.移动.压缩等对SELinux属性关系详解 1.临时修改文件的类型属性 文件的类型属性不正确是常见的SELinux拒绝访问的主要原因 1)修改文件的SELinux属性: [root@loca ...

  5. java8 方法引用详解_Java8中如何通过方法引用获取属性名详解

    前言 在我们开发过程中常常有一个需求,就是要知道实体类中Getter方法对应的属性名称(Field Name),例如实体类属性到数据库字段的映射,我们常常是硬编码指定 属性名,这种硬编码有两个缺点. ...

  6. CSS属性vertical-align详解(CSS之五)

    CSS属性vertical-align详解 作用对象 vertical-align的意思是在垂直方向进行对齐.它主要对以下属性的元素有效 inline元素.inline-block元素和普通的文本. ...

  7. Python|线程和进程|阻塞|非阻塞|同步|异步|生成器和协程|资源竞争|进程间通信|aiohttp库|daemon属性值详解|语言基础50课:学习(11)

    文章目录 系列目录 原项目地址 第34课:Python中的并发编程-1 线程和进程 多线程编程 使用 Thread 类创建线程对象 继承 Thread 类自定义线程 使用线程池 守护线程 资源竞争 G ...

  8. html旋转角度计算,CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate) | 0101后花园...

    CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate) | 0101后花园 2018-09-26 在CSS3中,可以利用transfor ...

  9. css动画定义,css3的动画(animation)属性的详解(附代码)

    本篇文章给大家带来的内容是关于css3的动画(animation)属性的详解(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. css3动画(animation)具有以下属性: ...

  10. Android 属性动画 详解

    Android 属性动画 详解 Android动画类型: View Animation(即所谓的Tween Animation补间动画):View Animation相当简单,不过只能支持简单的缩放. ...

最新文章

  1. Shell脚本逐行处理文本文件技巧
  2. “智源论坛Live”报名 | 清华大学高天宇:实体关系抽取的现状和未来
  3. 吃了这些数据集和模型,跟 AI 学跳舞,做 TensorFlowBoys
  4. vue的自定义标签tag是什么意思啊_好好的衣服为什么洗一次就废,服装标签上的图标究竟是什么意思?...
  5. Django 的JsonResponse 与json
  6. Android Mvp 架构
  7. oracle数据库快照打点,Oracle数据库快照的使用
  8. poj 1191 棋盘分割(记忆化dp+递归)
  9. bzoj 4826: [Hnoi2017]影魔
  10. arcgis 将栅格值提取到点_ArcGIS教程:值提取至点 (空间分析)
  11. 【安装记录】如何在官网找到老版本的jdk,如 jdk-8u271-windows-x64
  12. 伪随机序列MATLAB实现
  13. commons-pool.jar 和commons-dbcp.jar 下载地址
  14. javaweb JAVA JSP员工绩效考核管理系统(员工考核管理系统)员工考勤管理系统人事考勤
  15. xsos:一个在Linux上阅读SOSReport的工具
  16. iOS多张图片合成一个视频
  17. ubuntu安装windows 字体
  18. Android ——XML布局实现桌面台球的开始界面
  19. andriod手机信号显示G、E、H、T是什么意思?
  20. 20221221英语学习

热门文章

  1. Vue开发问题—— mescroll滚动懒加载,以及保留滚动条位置。
  2. WORD图片打印预览没有
  3. Unity3d是目前主流的游戏开发引擎
  4. A星算法(A*/A Star)
  5. Ubuntu 搭建Ftp服务器
  6. C#二次开发金橙子MarkEzd.dll激光打标机
  7. 重装系统找不到固态_安装win10系统时无法识别固态硬盘怎么解决
  8. 海康威视摄像头录制的视频无法用PR剪辑
  9. vue 做的酷狗音乐网页版 ,酷狗音乐网页版,ui界面模仿原生酷狗音乐
  10. orbSLAM2 之 追踪参考关键帧