mappedBy的意思就是“被映射”,即mappedBy这方不用管关联关系,关联关系交给另一方处理

1.规律:凡是双向关联,mapped必设,因为根本都没必要在2个表中都存在一个外键关联,在数据库中只要定义一边就可以了

a) 只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性; 
b) mappedBy标签一定是定义在the owned side(被拥有方的),他指向the owning side(拥有方);
c) mappedBy的含义,应该理解为,拥有方能够自动维护 跟被拥有方的关系; 
   当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的。

d) mappedBy跟JoinColumn/JoinTable总是处于互斥的一方,可以理解为正是由于拥有方的关联被拥有方的字段存在,拥有方才拥有了被 拥有方。mappedBy这方定义的JoinColumn/JoinTable总是失效的,不会建立对应的字段或者表

人跟身份证双向关联

在Person 里面定义的注解:

@OneToOne(cascade={CascadeType.ALL},optional=true) 
public IDCard getIdCard() { 
         return idCard; 
}

在IDCard 里面定义的注释: 
@OneToOne(cascade=CascadeType.ALL,mappedBy="idCard" , optional=false) 
public Person getPerson() { 
       return person; 

多了一个mappedBy这个方法,它表示什么呢?它表示当前所在表和Person的关系是定义在Person里面的idCard这个成员上面的,它表示此表是一对一关系中的从表,也就是关系是在person表里面维护的 ,这一点很重要 . Person表是关系的维护者,owner side,有主导权,它有个外键指向IDCard。 
我们也可以让主导权在IDCard上面,也就是让它产生一个指向Person的外键,这也是可以的,但是最好是让Person来维护整个关系,这样更符合我们正常的思维 .

我们也可以看到在Person里面IDCard是注释是optional=true,也就是说一个人是可以没有身份证的,但是一个身份证不可以没有人,所以在IDCard里面注释person的时候,optional就为false了,这样就可以防止一个空的身份证记录进数据库.

转载于:https://www.cnblogs.com/SpringSmallGrass/archive/2013/04/06/3002199.html

mappedBy的作用相关推荐

  1. 2022-7-29 小白学后端之mappedBy属性+@JsonBackReference注解+@AfterMapping注解

    mappedBy属性 mappedBy的意思就是"被映射",即mappedBy这方不用管关联关系,关联关系交给另一方处理 1.规律:凡是双向关联,mappedBy必设,因为根本都没 ...

  2. SpringBoot @ManyToOne @OneToMany JoinColumn mappedBy

    实体关系 MySQL 实体模型共有三种关系,一对一,一对多,多对多,多对一是相对于一对多的. 其中当两者关系为多对多时,必将生成一张关系表,该表的外键为两个实体的ID, 当两者关系为一对多时,有两种处 ...

  3. Object的finalize()方法的作用是否与C++的析构函数作用相同

    Object的finalize()方法的作用是否与C++的析构函数作用相同 public class Finalization {private static Finalization finaliz ...

  4. 浅显易懂 Makefile 入门 (02)— 普通变量和自动变量定义、使用($@、$^、$< 作用)、变量覆盖 override、变量的来源 origin

    1. 变量的定义 Makefile 文件中定义变量的基本语法如下: 变量的名称=值列表 变量的名称可以由大小写字母.阿拉伯数字和下划线构成.等号左右的空白符没有明确的要求,因为在执行 make 的时候 ...

  5. 【B/S实践】解决:vs中修改样式表后不起作用的问题

    缓存,有好多,cpu和内存之间的三级缓存,浏览器内的缓存! 缓存是因为速率不对等,通过缓存来加速内容的显示! 今天我在敲牛腩的时候遇到一个问题,找了半小时,才发现是缓存导致的问题! 试着运行aspx文 ...

  6. 卷积神经网络之卷积计算、作用与思想 深度学习

    博客:blog.shinelee.me | 博客园 | CSDN 卷积运算与相关运算 在计算机视觉领域,卷积核.滤波器通常为较小尺寸的矩阵,比如3×33×3.从这个角度看,多层卷积是在进行逐层映射,整 ...

  7. 机器学习——标准化/归一化的目的、作用和场景

    对每个特征进行归一化处理,使得每个特征的取值缩放到0~1之间.这样做有两个好处: 模型训练更高效. 特征前的权重大小可代表该变量对预测结果的贡献度(因为每个特征值本身的范围相同). (一)归一化的作用 ...

  8. Linux操作系统下文件作用

    linux下的文件结构,看看每个文件夹都是干吗用的 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的 ...

  9. python sys.argv[] 的作用

    sys.argv[]是什么 argv 是sys库里面的所以使用的 需要先引入sys (使用import sys) sys.argv[]的作用 从程序外获取参数,怎样理解呢,例如在终端中运行test脚本 ...

  10. C++ namespace 的作用以及使用

    namespace 是什么: 命名空间(namespace)是一种描述逻辑分组的机制,可以将按某些标准在逻辑上属于同一个任务中的所有类声明放在同一个命名空间中.标准C++库(不包括标准C库)中所包含的 ...

最新文章

  1. 家庭局域网开启AP隔离利用无线路由器互连
  2. Go语言实战读书笔记
  3. boost::hana::metafunction用法的测试程序
  4. Google Chrome 53 Beta 引入影子 DOM V1
  5. 服务人员在Hybris ASM手动分配coupon给某个客户
  6. shell 25个常用命令
  7. 我的Mac os x中的nginx配置文件nginx.conf
  8. 华为EMUI10的美学哲思:让美不止初见
  9. iOS 12 真的能让旧款 iPhone 速度飞起吗?
  10. IDEA插件jrebel的配置使用
  11. android集成融云sdk,Android中如何集成融云SDK单聊
  12. vue 富文本编辑器 —— wangEditor
  13. Linux 配置Host
  14. 在家用群晖搭建wordpress博客
  15. 透过西安未来人工智能计算中心,看到AI不一样的未来
  16. NOIP2015 pj
  17. 喜茶入股7家茶饮,从“打工仔”做起了“金主爸爸”?
  18. 阿里云CDN直播架构与双11晚会直播实战 1
  19. 【游戏测试】客户端性能 - drawcall 工具链
  20. SSD可靠性影响因素、原理和解决方法

热门文章

  1. 《现代操作系统第四版》第一章课后答案
  2. 淘宝美工设计师细说何为天猫透明背景
  3. CycleGAN与pix2pix详解
  4. 云服务器和虚拟主机的区别
  5. 计算机主板光驱插口,如何查看笔记本光驱位和主板的SATA接口版本
  6. qca9533 openwrt 启动信息
  7. lnmp一键安装包 mysql_CentOS7下安装lnmp一键安装包
  8. 下载小红书无水印照片
  9. 初学视觉学习笔记----打开摄像头遇到的问题
  10. Linux下pgadmin4启动报错,在CentOS 7/Fedora 29系统上安装配置pgAdmin 4的方法