public void delete(Long id) {
    // 一并删除子节点
    List<?> params = paramDao.getChildrenById(id);
    for (Object entity : params) {
      Param param = (Param) entity;
      paramDao.delete(param);

      // 刷新参数缓存,如果删除的是缓存项,则需要手动的刷新其所属的参数节点
      ParamManager.remove(param.getCode());
    }
  }
  public void delete(Long id) {
    checkPermission(id);

    // 一并删除子节点
    List<?> children = paramDao.getChildrenById(id);
    for (Object entity : children) {
      Param item = (Param) entity;
      if (id.equals(item.getId())) {
        fireListener(item); /* 在执行delete前触发触发器,否则执行如getParentsById等查询时,因o1已经删除,将查询不到数据 */
        item = paramDao.getEntity(id);
      }
      paramDao.delete(item);
    }
  }