spring data jpa 的多对多映射关系 完整配置(没用@Data注解)

本文介绍了Spring Data JPA中多对多映射关系的配置,包括@ManyToMany注解的使用,中间表的配置以及如何通过mappedBy属性指定关系维护端,避免生成三张表。文章还讨论了默认生成的关联表结构,并提供了实验结果。
摘要由CSDN通过智能技术生成

spring data jpa 的多对多映射关系

描述:用户和角色的关系
用包含关系来说明
一个用户可以拥有多个角色,同时一个角色可以被多个用户所具有
先了解一些注解再来配置
注意:我这里配置时候没有用lombok的注解防止出错
典型的多对多的关系
@ManyToMany
作用:用于映射多对多关系
属性:
cascade:配置级联操作。 (看需求增加)
fetch:配置是否采用延迟加载。(看需求增加)
targetEntity:配置目标的实体类。(映射多对多的时候不用写)

@JoinTable(可以不配置有默认)
作用:针对中间表的配置
属性:
nam:配置中间表的名称(可以不写,有默认,如果要自己定义中间表的名字的话可以设置)
joinColumns:中间表的外键字段关联当前实体类所对应表的主键字(可以不写,有默认,如果要自定义中间表引用当前实体中的主键字段和自定义外键名称的话可以设置)
inverseJoinColumn:中间表的外键字段关联对方表的主键字段(可以不写,有默认,如果要自定义中间表引用对方实体中的主键字段和自定义外键名称的话可以设置)
@JoinColumn(可以不配置,上述的自定义设置需要用到这个注解)
作用:用于定义主键字段和外键字段的对应关系。
属性:
name:自定义外键字段的名称,可以不设置,有默认
referencedColumnName:引用主表的主键字段,可以不设置,有默认
unique:是否唯一。默认值不唯一
## 下面正式开始配置:

/**
 * @author leebob
 *用户实体类
 */
@Entity
@Table(name="sys_user")
public class SysUser {
   
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="user_id")
	private Long userId;
	@Column(name="user_code")
	private String userCode;
	@Column(name="user_name")
	private String userName;
	@Column
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值