JPA中将数据库表之间的一对多、多对多、一对一这3种关系拆分

单向多对一、单向一对多、双向一对多多对一
单向多对多、双向多对多
单向一对一、双向一对一
在今后项目中,给你一个sql文件(数据库备份文件)需要将其导入到数据库中,表和数据都已经有
了,这个时候我们需要自己去写domain实体类与这些表产生映射关系
① 建表策略改为 validate
② 配置关系的时候,首先要去分析表与表之间的关系,如果表之间一对多关系,则domain实体类优
先配置一个单向多对一;如果表之间是多对多关系,则domain实体类优先配置一个单向多对多关系。
③ 当单向关系已经不能够满足我们的功能需求的时候,再去吧它改成双向关系(一方放弃维护关系)
④ 级联保存和级联删除最好不要用,如果非要用也顶多只能用一下级联保存,今后的组合关系要使用
最强级联
注意:级联删除的时候是先删除一方关联所有多方数据,然后再删除一方数据本身
⑤ 孤儿清除:本质就是一个脏数据更新的效果,当你查询一方数据,从一方的List集合中删除一个或
一些对象,当提交事务的时候,JPA会自动发出delete语句去删除这些多方数据【注意:一方数据不会
被删除】
⑥ 多对多关系中要注意:@JoinTable指定中间表名称和两个外键列名称
⑦ 一对一关系用得很少,即使要用也是使用唯一外键方式,或者直接写成 @ManyToOne+唯一约束

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值