@Override protected void beforInputSave() { logger.debug("beforInputSave..."); if (StringUtils.isNotBlank(id)) { employee = employeeService.getById(id); employee.setDepartment(null); employee.getUser().getRoles().clear(); // Set<Role> roles = employee.getRoles(); if (isEditSave()) { // 如果是修改后的保存,因为prepare到save前会执行一次Set操作(modelDriven), // 所以要在保存前将其关联的对象置空 } else { // 修改前的数据回显准备 // ids = new Long[roles.size()]; // int i = 0; // for (Role role : roles) { // ids[i++] = role.getId(); // } } } }
@Override public String save() { if (employee.getDepartment() == null || employee.getDepartment().getId() == null || employee.getDepartment().getId() == -1) { employee.setDepartment(null); } // 修改后传过来的ids数组 if (StringUtils.isNotBlank(ids)) { String[] idsStr = ids.split(","); Long[] idsLong = ArrayConverter.Strings2Longs(idsStr); for (Long idL : idsLong) { employee.getUser().getRoles().add(new Role(idL)); } } if (StringUtils.isNotBlank(id)) { employeeService.update(employee); } else { employeeService.save(employee); } actionJsonResult = new ActionJsonResult(employee); return JSONLIST; }