a4j:commandButton

1 resposta
E

ola tenho um a4j:commandButton que esta executando a função de salvar uma pagina de cadastro. O problema é que ele salva e envia tudo para o banco exceto as listagens geradas, como por exemplo listagem de telefones do cliente. Alguem pode me dar uma ajuda???

por favor.

abaixo segue o codigo
public String salvar() {


        JOptionPane.showMessageDialog(null, cliente.getCodtipoacesso());
        JOptionPane.showMessageDialog(null, cliente.getSistemaList());
        JOptionPane.showMessageDialog(null, cliente.getEnderecoList());
        JOptionPane.showMessageDialog(null, cliente.getTelefoneList());
        ClienteDAO.getInstance().salvar(cliente);

        // Método que separa os valores da pagina de Autorizacao e Manutencao para o cliente para salvar
        //   arrayToCharClienteAutorizacaoManutencao(cliente.getAutorizacaoManutencao());

        // Tipo acesso
        if (getTipoAcesso().equals(1)) {
            cliente.setCodtipoacesso(null);
        } else if (getTipoAcesso().equals(2)) {
            cliente.setCodtipoacesso(null);
        } else if (getTipoAcesso().equals(3)) {
            cliente.setCodtipoacesso(null);
        }

        // verificações de campos obrigatórios
        //Usuario
     //  if ((cliente.getCliusuario() == null) || (cliente.getCliusuario().equals(""))) {



        ClienteDAO.getInstance().gravaCliente(cliente, telefoneList, sistemaList, enderecoList, contatoList);
        clienteDM = null;
        cliente = new Cliente();


        return "";

    }


e aqui vem o método  ele trava na hora que chama este metodo

  public String gravaCliente(
            Cliente cli,
            List<Telefone> telefoneList,
            List<Sistema> sistemaList,
            List<Endereco> enderecoList,
             List<Telefone> contatoList) {
        EntityManager em = null;
        String retorno = "sucesso";

        try {

            em = PersistenceUtil.getEntityManager();
            em.getTransaction().begin();

            // grava apenas o cliente
            cli = em.merge(cli);


            // grava a listagem de TELEFONES DO CLIENTE
            if (telefoneList != null) {
                for (int a = 0; a < telefoneList.size(); a++) {  (para aqui)
                    Telefone telefone = telefoneList.get(a);

                    if (telefone.getCodcliente().getCodcliente() == null) {
                        telefone.setCodcliente(cli);
                        em.merge(telefone);
                    }
                }
            }

            
            
            // grava a listagem de SISTEMAS DO CLIENTE
            if (sistemaList != null) { (entra aqui)
                for (int a = 0; a < sistemaList.size(); a++) {(para aqui)
                    Sistema sis = sistemaList.get(a);

                    if (sis.getCodcliente() == 0) {
                     // sis.setCodcliente(cli);
                        em.merge(sis);
                    }
                }
           }


            
            // grava a listagem de endereços dos clientes
            if (enderecoList != null) {  (entra aqui)
                for (int a = 0; a < enderecoList.size(); a++) {(para aqui)
                    Endereco endereco = enderecoList.get(a);

                    if (endereco.getCodcliente().getCodcliente() == 0) {
                        endereco.setCodcliente(cli);
                        em.merge(endereco);
                    }
                }
            }
            em.getTransaction().commit();  (entra aqui executa e volta para o método salvar)
        } catch (Exception e) {
            e.printStackTrace();
            em.getTransaction().rollback();
            retorno = "fracasso";
        } finally {
            PersistenceUtil.close(em);
        }
        return retorno;
    }

1 Resposta

R

1 - Bem-vindo ao fórum;
2 - Formate seu código usando as tags <code>, fica mais fácil pra gente te ajudar.

Criado 5 de maio de 2011
Ultima resposta 5 de mai. de 2011
Respostas 1
Participantes 2