Executar uma procedure com a qtd de objetos de um List

2 respostas
J

Pessoal, tenho dois atributos de um objeto e desejo persisti-lo no Banco, como código abaixo ele persiste da primeira vez e da segunda qdo ele executa ele me retorna uma SQL Exception dizendo que a o registro no banco tem é chave unica e não pode ser duplicado, mas detalhe: Na lista não há elementos repetidos

for (NotaEmpenho obj : _ntaEmpenho)
{

csNtaEmpenho.setInt(1, _idContrato);

csNtaEmpenho.setString(2, obj.getNotaDeEmpenho());

csNtaEmpenho.setString(3, obj.getExercicioFiscal());

csNtaEmpenho.execute();

}

O ‘csNtaEmpenho’ é um ‘CallableStatement’.

2 Respostas

J

Tudo bem?
Mas o erro ocorre de que forma?
Na segunda iteração do bloco for ou na segunda vez que o programa é executado?
Como são gerados os ids dos objetos?

for (NotaEmpenho obj : _ntaEmpenho)

{

csNtaEmpenho.setInt(1, _idContrato); // Esse campo não deveria ser lido de obj?

csNtaEmpenho.setString(2, obj.getNotaDeEmpenho());

csNtaEmpenho.setString(3, obj.getExercicioFiscal());

csNtaEmpenho.execute();

}

M

Tente criar seu CallableStatement a cada interação. Isto pode ajudar.

:okok:

Criado 15 de fevereiro de 2007
Ultima resposta 25 de fev. de 2007
Respostas 2
Participantes 3