@Override public List<UtenteDTO> getByCompetenze(String competenza, Integer livello) { // cerco l'id corrispondente all'id della competenza Map<String, SearchDTO> andMap = new HashMap<String, SearchDTO>(); SearchDTO so = new SearchDTO(); so.setOperatore(it.linksmt.corsoedoc.intranet.enumeration.Operator.EQUAL); so.setValue(competenza); andMap.put("descrizione", so); ISpecifications<Skill> u = new ISpecifications<Skill>(); Specification<Skill> spec = u.findByCriteria(andMap, null); Skill skill = skillRepJpa.findOne(spec); long idSkill = skill.getId(); // cerco gli utenti idonei una cerca competenza e un certo livello Map<String, SearchDTO> andMap2 = new HashMap<String, SearchDTO>(); SearchDTO so2 = new SearchDTO(); so2.setOperatore(it.linksmt.corsoedoc.intranet.enumeration.Operator.EQUAL); so2.setValue(idSkill); andMap.put("tb_skill_id", so2); so2.setValue(livello); andMap.put("livello", so2); ISpecifications<UtenteHasSkill> uS = new ISpecifications<UtenteHasSkill>(); Specification<UtenteHasSkill> spec2 = uS.findByCriteria(andMap2, null); List<UtenteHasSkill> listaUtentiHasSkill = utenteSkillRepository.findAll(spec2); // riempio una lista con tutti gli utenti DTO idonei List<Utente> utentiIdonei = new ArrayList<Utente>(); for (UtenteHasSkill utenteHasSkill : listaUtentiHasSkill) { utentiIdonei.add(utenteRepository.findOne(utenteHasSkill.getId())); } return UtenteConverter.convertListToDTO(utentiIdonei); }
public static SkillDTO convertToDto(Skill skill) { SkillDTO dto = new SkillDTO(); dto.setId(skill.getId()); dto.setDescrizione(skill.getDescrizione()); return dto; }