Na minha action de Empresa, para consultar as empresas, eu uso um método (EmpresaBD.select(empresaVO) ) que recebe como parametro um empresaVO.
O problema ocorre qdo preciso consultar as empresas em outro módulo, por exemplo, o módulo de relacionamento de empresa e usuario. Nessa action (UsuarioEmpresaAction) eu recebi um form e copiei os dados para um usuarioEmpresaVO.
e se precisar chamar o método para consultar a empresa, toda vez vou ter de instanciar um empresaVO?
Não seria correto que meu método recebesse como parametro apenas códigos?
Na verdade este método retorna um HashMap
[EmpresaBD.select(empresaVO)]
Utilizando como filtro da consulta o VO passado como parametro.
A dúvida é a seguinte:
Qdo preciso chamar esse método em outro módulo (UsuarioAction) no qual tenho um usuarioEmpresaVO, para preencher um combo (com determidado filtro), por exemplo.
Deverei instanciar sempre este empresaVO e copiar os dados de um para o outro?
Num seria correto passar como parametro apenas as variaveis e nao objeto?
Bom, vai depender do desenho da sua aplicação. Se você definiu que você recebe um objeto de filtro dos dados ou se recebe parâmetros com os dados do filtro.
No começo da nossa aplicação, chegamos a conclusão de que utilizar o HashMap seria mais perfomático para implementar :
a exclusão multipla
Pq podemos pegar um array com os Keys do hash selecionado pelo usuario e não ter de fazer loop para excluir.
a ordenação:
Na telas de listagem implementamos a ordenação do HashMap de acordo com o campo escolhido sem consultar no banco, o que não conseguimos implementar com LinkedList.
É que com o comparator… se me lembro bem teríamos que implementar um pra cada ojeto que fossemos comparar…
O que fizemos foi um método que recebe dois parametros:
Um LinkedHashMap ou LinkedList contendo qq tipo de VO e uma string com nome do campo que se deseja a ordenação…
Mas o ruim disso é que tivemos que utilizar reflexion para recuperar o VO correto no Collection…