阅读此文章需要有基础的jpa知识,此处不讲述entity、repository。
可以查看我之前的文章Spring Data Jpa 快速上手(一)使用spring data jpa 实现增删改查
1.创建表和实体类
此次我们使用最常见的多对多关系,用户与角色,一个用户可以拥有多个角色,一个角色也可以被多个用户拥有。此时我们需要一个中间表保持两者的关系,因为我们通常是赋予用户某个角色,即以修改用户为主体,即虽然是多对多,但仍可视为User
为主,Role
为从,所以中间表在User
中进行维护。
此外,大家可以发现,此处的注解不为@Data
,是因为使用@Data
(主要是@Data
包含了@ToString
的效果,@ToString
会造成无限迭代)会造成无限迭代(不知为何),所以仅仅使用我们需要的@Getter
@Setter
两个注解就可以了
并且要自己重写toStirng方法(不能包括@ManyToMany
所对应的的属性)
Role实体类
@Entity
@Getter
@Setter
@Table(name = "sys_role")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "role_id")
private Long roleId;
@Column(name = "role_name")
private String roleName;
//配置多对多
@ManyToMany(mappedBy = "roles") //配置多表关系
private Set<User> users = new HashSet<>();
@Override
public String toString()