1.什么是一对多 最多
2.什么是多对一
3.什么是多对多 第二多
3.什么是一对一 最少
一、单向一对多One ToMany操作
1.实现规则
1、注解
1)@OneToMany
1>含义:设置一对多关联
2>属性:
1<cascade
2<fatch
1^获取数据的方式
2^LAZY 懒加载 初始查询是不能主动加载数据,当使用该属性才会加载,减少 资源占用
3^即使加载 主动加载数据等待使用
2)@JoinColumn
1>含义:
2>属性
2、流程
二、单向多对一ManyToOne操作
1.实施规则
1、注解
1)@ManyToOne
1<含义 设置多对一关联
2<属性
1>targetEntity
1^设置关联的一的一方的实体类
2^例如targetEntity=Father.class
2>fetch
3>cascade
2)@JoinColumn
2、流程
2.案例
3.练习
三、双向多对一操作
1.实施规则
1、注解
1)@OneToMany
1<设置一对多关联
2<属性
1>mappedBy
1^mappedBy属性:用于标识主表,设置主表实体类在从表实体类中的引用关系
2^谁使用mappedBy谁是主表|关系被维护者
3^mappedBy指向谁,谁是从表|关系维护着
2>cascade
2)@ManyToOne
3)@JoinColumn
4)忽略JSON解析
5)一|主实体类
1<@OneToMany
2<mappedBy标注主表 设置从表实体类的引用属性
6)多|从实体类
1<@ManyToOne
2<@JoinColumn
7)从表实体类使用mappedBy属性,从表实体类使用@JoinColumn
2、流程
四、多对多ManyToMany操作
五、一对一OneToOne操作
设置多对多关系
在明星可以查询粉丝有谁 谁被关注了
实体类还是集合
@ManyToMany 标注多对多关系
@JoinTable 设置多对多里面关联的第三张表
期中可以设置具体的和某一个字段的关联关系
name指定关系的表名
@JoinClumns 指定当前实体类在中间表的外键关系
inverseJoinColumns 指定另外一个实体类在中间表的外键关系
里面使用@JoinColumn
语法:JoinColumn = {@JoinColumn(name=“外键名”)}
inverseJoinColumns 指定另一个实体类在中间表的外键关系
inverseJoinColumns = {@JoinColumn(name=“另一个外键名”)}
在多对多关系中,可以在粉丝和明星中假设明星为主表 粉丝表为从表
使用mappedBy来当主表
mappedBy = 指向的是从表实体类,中维护关系的属性对象
mappedBy = 只想的是从表实体类,需要维护关系的
有mappedBy的是主表实体类不需要维护关系
呗mappedBy = 指向的,使用@JoinColumn或@JoinTable来维护关系的