Olá, pessoal do GUJ!
Bom, estava eu em meus estudos, quando me deparei com uma dúvida…
Digamos que tenho um projeto no qual apliquei a arquitetura MVC.
Tenho uma classe Service, a qual comunica com os Pojos, e comunica também com uma classe Action qualquer.
Daí eu faço uma consulta no banco, retornando List, mas quero passá-la via Map pra camada superior, sem que o Action enxergue o Pojo.
Bom, sem mais enrolações, vai o código aí:
public Map<String, Object> readByExample(Map<String, Object> input) throws Exception {
   Pessoa pessoa = new Pessoa();
   pessoa.setId(new Long(input.get("id")));
   pessoa.setNome(input.get("nome"));
   //...
   List<Pessoa> pessoas = PessoaDAO.getInstance().readByExample(pessoa);   
 
   List<Long> ids = new ArrayList<Long>();
   List<String> nomes = new ArrayList<String>();
   for (Pessoa p : pessoas) {
      ids.add(p.getId());
      nomes.add(p.getNome());
      //...
   }
   Map<String, Object> output = new TreeMap<String, Object>();
   output.put("ids", ids);
   output.put("nomes", nomes);
   return output;
}
O que vocês acham? Tem uma boa performance? Alguma sugestão para melhorá-lo?
Abraço a todos!