2021-03-25

本文介绍了在SpringBoot中使用JPA进行数据库关系映射的理解,特别是维护端与被维护端的概念。JPA规范指出,拥有mappedBy注解的实体为被维护端,而维护端负责关联表的CRUD操作。以作者与文章的一对多关系为例,文章作为多端即维护端,外键应设计在文章实体中,以避免数据冗余。通过这样的设计,确保了数据的一致性和关系的正确维护。
摘要由CSDN通过智能技术生成

JPA关系映射理解

在SpringBoot 中涉及数据库多表查询等等,往往涉及关系映射。刚开始对这个映射很懵逼,搞不懂其中的维护端和被维护端的含义以及在实体涉及时应该怎么设计主键、外键是在维护端还是被维护端。下面就讲解一下自己的见解!

JAP规范

关联关系映射,是映射关系中比较复杂的一种映射关系,总的说来有一对一、一对多和多对多几种关系。拥有mappedBy注解的实体类为关系被维护端,另外的实体类为关系维护端的。关系的维护端负责对关系(在多对多为中间关联表)的CRUD做操作。关系的被维护端不能进行该操作,不能维护关系。
这个概念对于我们新手来理解的话,可能有点懵逼,直接上图!在这里插入图片描述
一个作者有多个文章,多个文章可能对于一个作者。这是一个一对多或者多对一的关系映射。(其中主键、外键已经标出便于理解)

解释

  1. 针对这两个表,我们应该如何设计区分主键和外键的位置。根据JPAG规范中可以知道,多端(一个作者对应多个文章,所以文章为多端)为关系的维护端。
  2. 维护端是要进行一些具体的操作,比如:增删改查等功能。
  3. 维护端就要进行更多的数据添加删除等操作,如果是在作者表中设计一个额外的外键属性来连接文章表的话,就会作者表中就会出现两个相同作者信息(除外键信息不一致),这样就跟一个作者对应多个文章有冲突,因此我们应该把外键设置在文章表(多端/维护端)中。

结论:我们得到多端为维护端的结论后,就把外键设计在维护端,主键设计在被维护端。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值