Cadastro em um banco de dados, qual a melhor implementação?

Olá gente,

Tenho uma aplicação com um formulário de cadastro de fornecedores, onde existem muitos dados a serem cadastrados em um banco de dados. Estou usando o hibernate. Atualmente esses dados são passados por parâmetro da view para uma classe intermediária. A classe intermediária passa os mesmos parâmetros para uma classe responsável por criar o bean fornecedor e persisti-lo no banco. Mais ou menos assim:

|UI| ----addFornecedor(muitos_parametros)—> |ClasseIntermediaria| ----addFornecedor(muitos_parametros)—> |ClasseParaPersistencia| —>sessao.saveOrUpdate(beanFornecedor)

Como são muitos parâmetros, as chamadas dos método que passam esses parâmetros ficam muito extensas. Existe uma forma melhor de fazer isso? Estava pensando em instanciar o bean fornecedor na view e passá-lo para a classe intermediária, mas isso estaria certo? Pensei também na possibilidade de usar o padrão builder para isso. O que vocês acham? Espero que não tenha sido muito confuso.

Obrigado!

Criar instância de objetos na view não é uma boa prática, na verdade qualquer coisa que seja feita na view que não seja apenas view não é boa prática.

Mas você não precisa passar todos esses parâmetros no método você pode criar o bean nessa tal classe intermediária (Controller).

Enfim, se você mostrar como o código está talvez fique mais fácil de te ajudarem.

Pois é. Criar o bean na classe controller já melhoraria as coisas. Mas ainda assim eu teria que passar os dados da view para o controller e pra isso precisaria passar aquela quantidade enorme de parâmetros. O código do controller está mais ou menos assim:

public class Gerenciador {
   public void adicionarFornecedor(String bairro, String cep, String complemento, String contato, boolean inativo, List<Email> listaEmail, List<Telefone> listaTelefone, String logradouro, String municipio, String numero, String outro, String site, String tipoLogradouro, String uf, String cpf, String nome, String rg, String cnpj, String fantasia, String inscricaoEstadual, String inscricaoMunicipal, String razaoSocial) {
        boolean resultado = controleFornecedor.adicionarFornecedor(bairro, cep, complemento, contato, inativo, listaEmail, listaTelefone, logradouro, municipio, numero, outro, site, tipoLogradouro, uf, cpf, nome, rg, cnpj, fantasia, inscricaoEstadual, inscricaoMunicipal, razaoSocial);
        controleFornecedor.atualizarFornecedor(resultado);
    }
}

A view chamaria o método adicionarFornecedor do controller que por sua vez chamaria o método adicionarFornecedor da classe controlerFornecedor a qual é responsável por criar o bean e persisti-lo no banco.

A aplicação é web ou swing?

Se for web e vc estiver usando JSF não precisa se preocupar com isso, se for Swing tem alguma coisa que facilita tua vida que o mark ameba fez da uma procurada por posts dele.

Se for web e sem jsf eu não vejo outra maneira de passar os dados da view para controller sem passar n parâmetros, e criar um objeto na view e passar como parâmetro quebra totalmente o conceito de MVC.

É swing.

Então: http://markyameba.wordpress.com/

Vou dar uma olhada. Obrigado!