Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como enxugar as chamadas para um método do Dao no controller

Boa tarde pessoal!!

Eu tenho um método no meu ProdutoDao, para listar as montadoras:

    public List<Montadora> listaMontadora(String marca) {
        TypedQuery<Montadora> query = manager.createQuery("Select m from Montadora m where m.marca = :marca",
                Montadora.class);
        query.setParameter("marca", marca);
        return query.getResultList();
    }

E no meu ProdutoController, eu estou fazendo três chamadas para esse método, para passar o parâmetro da empresa... Cada empresa possui montadoras DISTINTAS...

    public void listaMontadoraEmpresa1() {
        List<Montadora> montadoras = produtoDao.listaMontadora("Empresa1");
        result.include("montadoras", montadoras);
    }

    public void listaMontadoraEmpresa2() {
        List<Montadora> montadoras = produtoDao.listaMontadora("Empresa2");
        result.include("montadoras", montadoras);
    }

    public void listaMontadoraEmpresa3() {
        List<Montadora> montadoras = produtoDao.listaMontadora("Empresa3");
        result.include("montadoras", montadoras);
    }

Tem como eu melhorar isso ?? Se sim como...

Obrigado!

2 respostas
solução!

Fala Ewerton, blz ?

Acredito que possa manter simplesmente um método no seu controller para representar a funcionalidade de listar, que ao invés de definir em texto fixo qual a empresa, recebe essa informação por parâmetro. O usuario poderia selecionar a empresa em um combobox em um formulário, por exemplo, ou passar o parâmetro pela requisição de qualquer outra forma.

Perceba que o código é exatamente igual um ao outro, mudando apenas qual a empresa. Tente evitar ao máximo essa repetição pra facilitar sua vida na hora de uma manutenção.

Espero ter ajudado. Abraço

Blz... Refatorei o código... Obrigado!