Boa tarde a todos!
seguinte, estou usando o seguinte método no service (ContatoService) para buscar todos os contatos que sejam gravados como “PUBLICO” ou que pertençam ao departamento “GABINETE”
public List<Contato> getContatosPublicos() {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("perfil", "PUBLICO");
map.put("departamento", "GABINETE");
return contatoDaoImpl.getContatosPublicos(map);
}
método no Dao getContatosPublicos(map):
public List<Contato> getContatosPublicos(HashMap<String, Object> map) {
Session s = getSession();
Criteria criteria = s.createCriteria(getObject().getClass());
if (map != null) {
for (String key : map.keySet()) {
criteria.add(Restrictions.eq(key, map.get(key)));
}
}
List<Contato> list = criteria.list();
s.flush();
s.clear();
s.close();
return list;
}
mas acaba que ele me retorna todos os contatos que são “PUBLICO” e que pertença ao “GABINETE” (vem apenas um registro), mas está incorreto pq só de se cadastrar um contato como publico ele ja deve aparcer, independente de pertencer ao departamento gabinete. futuramente vou substituir essa string de “GABINETE” pelo departamento do usuario q está logado (está assim para efeito de teste), ou seja, vão aparecer todos que são cadastrados como publico ou os que pertencem ao departamento do usuario q esta logado (seriam os privados).
talvez o HashMap nao atenda a condição q estou pretendendo.
alguém poderia dar uma luz nessa escuridão???
desde já agradeço
