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 codigopublic 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;
}