菜单管理双向多对一配置
-
菜单管理配置
员工 -> 角色 -> 权限 -> 菜单
1.1 Menu
菜单domain的自关连配置
需要配置双向,但是不能让JPA去管理一对多(我们自己管理:@Transient)
双向生成JSON会产生死循环,需要一边进行忽略:@JsonIgnore
//让它不再生成JSON
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = “parent_id”)
@JsonIgnore
private Menu parent;
// 临时属性 -> 这个字段JPA就不管它了
@Transient
private List
1.2 MenuRepository
public interface MenuRepository extends BaseRepository<Menu,Long>{
@Query(“select distinct m from Employee e join e.roles r join r.permissions p join p.menu m where e.id = ?1”)
List
1.3 MenuService
根据设计只能通过员工找到子菜单
需要通过子菜单拿到父菜单
判断这个父菜单是否已经存到集合中
如果这个菜单单没有存起来,放到集合中 把当前这个子菜单放到父菜单中去
@Override
public List