ONE端
@OneToMany(mappedBy = "role", cascade = CascadeType.ALL,fetch=FetchType.EAGER,orphanRemoval=true)
@OrderBy(value = "action ASC")
private Set<SystemGroupAction> groupActions;
Many端
@ManyToOne
@JoinColumn(name = "roleid")
private SystemRole role;
saveUpdate
public boolean saveRole(RoleVo roleVo){
SystemRole role = systemGroupDao.getSystemRoleByName(roleVo.getRolename());
if(role == null){
role = new SystemRole();
role.setCreatetime(new Date());
role.setRolename(roleVo.getRolename());
}
role.setRoledesc(roleVo.getRoledesc());
List<ActionVo> list = roleVo.getActions();
SystemGroupAction roleaction = null;
for(ActionVo vo :list){
roleaction = systemGroupDao.getAssociationByRoleAction(roleVo.getRolename(),vo.getAction());
if(roleaction!=null){
role.getGroupActions().remove(roleaction);
}
roleaction = new SystemGroupAction();
SystemAction action = systemGroupDao.getSystemActionByAction(vo.getAction());
roleaction.setAction(action);
roleaction.setRole(role);
roleaction.setActive(vo.isActive());
role.addGroupAction(roleaction);
}
systemGroupDao.saveSystemRole(role);
return true;
}
set集合先要删除,在添加

本文介绍了一个角色权限管理系统中角色与操作之间的关联更新逻辑,包括角色信息的保存、更新以及角色与操作的关联管理。通过具体代码实现,展示了如何在角色更新时清除原有关联的操作,并重新建立新的关联。
1639

被折叠的 条评论
为什么被折叠?



