Alguma restrição/bug com executeUpdate() em um loop?

2 respostas
Metallica

Olá,

dividi em subtópicos:

[size=18]PROBLEMA:[/size]
Ao tentar salvar um ou muitos responsáveis no Banco, ele simplesmente não salva nada.

[size=18]O QUE FAÇO ATUALMENTE:[/size]
Eu recebo um objeto PessoaJuridica que encapsula numa ArrayList seus responsaveis.
Dentro do método percorro a lista, preenchendo o Statement e executando. Conexão é estabelecida, tudo OK.
Já fiz aquele debug de imprimir os valores e eles estão corretos.

[size=18]CÓDIGO:[/size]

public String cadastraResponsavel(PessoaJuridica p) throws SQLException {
        this.ps = CON.prepareStatement("INSERT INTO Responsavel " +
                                       "(cdPessoaJuridica, cdPessoaFisica) " +
                                       "VALUES (?, ?)");
        
        //Uma pessoa juridica pode ter muitos responsaveis (List)
        List<Responsavel> l = p.getResponsavel();
        for(Responsavel atual : l) {                    
            this.ps.setInt(1, p.getId()); //id é o cdPessoaJuridica
            this.ps.setInt(2, atual.getCodPessoaFisica());
            this.ps.executeUpdate();
        }        
        return MENSAGEM_JSF_OK;
    }

[size=18]RESULTADO:[/size]
Nada é salvo no banco de dados, a tabela continua em branco. (Outras tabelas funcionam, banco de dados Access). Nenhuma exceção é lançada (ele até retorna a tal mensagem)

[size=18]PERGUNTA:[/size]
O que está errado? Não posso fazer um laço assim?

Obrigado de qualquer forma.

PS: Ficou bom a divisão em subtópicos? (A intenção é facilitar a leitura aos meus amigos solucionadores)

2 Respostas

S

A sua conexão tá com auto-commit ?

você pode checar isso no método getAutoCommit de sua conexão.

Metallica

Ssalgado:
A sua conexão tá com auto-commit ?

você pode checar isso no método getAutoCommit de sua conexão.


Tá sim, chamando esse método getAutoCommit() ele me retorna true.

Criado 31 de agosto de 2008
Ultima resposta 31 de ago. de 2008
Respostas 2
Participantes 2