jpa中的个种关系

java中的关系

泛型:继承关系
实现
组合
聚合
关联
依赖

jpa中的关系

组合,聚合,关联


单向一对多,单向多对一,
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "department_id")
双向一对多/多对一:两边都要配置,但是我们为了提高性能,我们会在一遍选择放弃维权
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "department_id")


单项多对多,
	/**
* @ManyToMany 表示多对多,为了方便记忆,我们都统一写成懒加载
* JPA会自动创建一张中间表,名称为: 当前实体类对应表名称_对方实体类对应表名称
* 中间表内有两个外键
* 其中一个外键列名称为:当前实体类对应表名称_id
* 另一个外键列名称为:List集合类型的变量名称_id
* 我们可以通过@JoinTable注解来指定中间表的名称和两个外键列的名称
* @JoinTable 的name表示指定中间表的名称
* joinColumns 表示指定当前实体类对应表与中间表关联的外键列名称
* inverseJoinColumns 表示指定对方实体类对应表与中间表关联的外键列名称
*/
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "user_role",
joinColumns = {@JoinColumn(name = "user_id")},
inverseJoinColumns = {@JoinColumn(name = "role_id")})

双向多对多
两边实体类都需要配置,只需要交换位置就好了
	单向一对一,双向一对一
@Entity
public class QQ {
@Id
@GeneratedValue
private Long id;
private String qqNum;
}
@Entity
public class QQZone {
@Id
@GeneratedValue
private Long id;
private String name;
/**
* optional 表示这个关联字段是否允许为null
* unique 表示在外键列上面添加唯一约束
*/
@OneToOne(fetch = FetchType.LAZY,optional = false)
@JoinColumn(name = "qq_id",unique = true)
private QQ qq;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值