spring data rest ManyToMany

有中间关系表的表间关联,比如user多个对应role多个

1.设置多表之间的关联关系

CloudUserEntity.java
spring data rest ManyToMany

mappedBy = “users”,//标识维护端
Cascade 级联关系
CascadeType.REFRESH:级联刷新,当多个用户同时作操作一个实体,为了用户取到的数据是实时的,在用实体中的数据之前就可以调用一下refresh()方法

CascadeType.REMOVE:级联删除,当调用remove()方法删除CloudUserEntity实体时会先级联删除roles的相关数据

CascadeType.MERGE:级联更新,当调用了Merge()方法,如果CloudUserEntity中的数据改变了会相应的更新roles中的数据

CascadeType.ALL:包含以上所有级联属性

CascadeType.PERSIST:级联保存,当调用了Persist() 方法,会级联保存相应的数据

需要注意的是,CascadeType.ALL要谨慎使用,为了达到数据同步,很多人喜欢用CascadeType.ALL来实现。

CloudRoleEntity.java
spring data rest ManyToMany

2.添加转换lookup

写lookup对应的json转换实现类
spring data rest ManyToMany

3.配置在SpringDataRestCustomization中配置lookup提供json转换

spring data rest ManyToMany

4.发请求

新增 用post请求
spring data rest ManyToMany

此时后台会生成执行的sql
spring data rest ManyToMany

查询 get请求
http://localhost:8080/user/8a80cb816f84da19016f84dad6a00000 可以直接通过单表id查询,能返回出对应的关联表的name
spring data rest ManyToMany

删除 delete请求
http://localhost:8080/user/8a80cb816f84ccc6016f84cd94ff0001 直接通过主表的id进行删除,从表的所有级联数据全部删除