spring data rest ManyToMany
有中间关系表的表间关联,比如user多个对应role多个
1.设置多表之间的关联关系
CloudUserEntity.java
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
2.添加转换lookup
写lookup对应的json转换实现类
3.配置在SpringDataRestCustomization中配置lookup提供json转换
4.发请求
新增 用post请求
此时后台会生成执行的sql
查询 get请求
http://localhost:8080/user/8a80cb816f84da19016f84dad6a00000 可以直接通过单表id查询,能返回出对应的关联表的name
删除 delete请求
http://localhost:8080/user/8a80cb816f84ccc6016f84cd94ff0001 直接通过主表的id进行删除,从表的所有级联数据全部删除