@Override @Transaction public void findAndDeleteDuplicateInfoAccess(TopiaContext transaction) throws TopiaException, LogicException { if (log.isDebugEnabled()) { log.debug("findAndDeleteDuplicateInfoAccess"); } InfoAccessDAO dao = SandraDAOHelper.getInfoAccessDAO(transaction); int cnt = 0; List<InfoAccess> infoAccessList = dao.findAll(); Map<String, InfoAccess> infoAccessNames = new HashMap<String, InfoAccess>(); for (InfoAccess infoAccess : infoAccessList) { InfoAccess cached = infoAccessNames.get(infoAccess.getNomAcces()); if (cached != null) { Eleveur cachedEleveur = findEleveurByAccesSilo(transaction, cached.getTopiaId()); Eleveur eleveur = findEleveurByAccesSilo(transaction, infoAccess.getTopiaId()); if (cachedEleveur != null && eleveur != null && cachedEleveur.getTopiaId().equals(eleveur.getTopiaId())) { dao.delete(infoAccess); cnt = cnt + 1; } } else { String name = infoAccess.getNomAcces(); if (name != null && !name.trim().isEmpty()) { infoAccessNames.put(name, infoAccess); } } } if (log.isDebugEnabled()) { log.debug("All duplicate info access are deleted, found : " + cnt); } }
@Override @Transaction public void findAndDeleteDuplicateInfoAccess(TopiaContext transaction) throws TopiaException, LogicException { if (log.isDebugEnabled()) { log.debug("findAndDeleteDuplicateInfoAccess"); } InfoAccessDAO dao = SandraDAOHelper.getInfoAccessDAO(transaction); int cnt = 0; List<InfoAccess> infoAccessList = dao.findAll(); Map<String, InfoAccess> infoAccessNames = new HashMap<String, InfoAccess>(); for (InfoAccess infoAccess : infoAccessList) { InfoAccess cached = infoAccessNames.get(infoAccess.getNomAcces()); if (cached != null) { Eleveur cachedEleveur = findEleveurByAccesSilo(transaction, cached.getTopiaId()); Eleveur eleveur = findEleveurByAccesSilo(transaction, infoAccess.getTopiaId()); if (cachedEleveur != null && eleveur != null && cachedEleveur.getTopiaId().equals(eleveur.getTopiaId())) { dao.delete(infoAccess); cnt = cnt + 1; } } else { String name = infoAccess.getNomAcces(); if (name != null && !name.trim().isEmpty()) { infoAccessNames.put(name, infoAccess); } } } if (log.isDebugEnabled()) { log.debug("All duplicate info access are deleted, found : " + cnt); } }