@Override public void deleteAcl(ObjectIdentity objectIdentity, boolean deleteChildren) throws ChildrenExistException { if (deleteChildren) { List<ObjectIdentity> list = this.findChildren(objectIdentity); if (list != null) { for (int i = 0; i < list.size(); i++) { deleteAcl(list.get(i), deleteChildren); } } } Map<String, Object> map = new HashMap<String, Object>(); map.put("className", objectIdentity.getType()); map.put("objectIdIdentity", objectIdentity.getIdentifier()); String statement = this.getStatement("deleteAcl"); List<AclObjectIdentity> selectList = this.getSqlSessionTemplate().selectList(statement, map); List<Object[]> list = new ArrayList<Object[]>(); for (AclObjectIdentity vo : selectList) { AclClass aclClassVO = vo.getAclClassVO(); Object[] objArray = {aclClassVO, vo}; list.add(objArray); } if (list == null || list.isEmpty()) { log.error("数据不存在...."); return; } AclObjectIdentity aclObjectIdentityVO = (AclObjectIdentity) list.get(0)[1]; deleteIdentityVoAndEntries(aclObjectIdentityVO); this.aclCache.evictFromCache(objectIdentity); }