Meu problema é o seguinte, quando estou alterando a entidade que é formada de chaves compostas, meu objeto esta sendo dublicado e não alterado. Isso acontece somente quando altero o campo chave, os outros campos altera normamente.
Método do bean que altera a entidade:
public void edit(Contas contas, Pessoa pessoa) {
em.merge(contas)
}
Método do chamado na aplicação swing:
private void jbtAlterarActionPerformed(java.awt.event.ActionEvent evt) {
//try{
if(!VerificaFormularios.verificaCampoTextoNulo(jpnConta)){
jlbMensagem.setText("");
entidadeConta.setPessoa(((Pessoa) listPessoaEm.get(jcbEmpresa.getSelectedIndex()-1)) );
entidadeConta.setLogradouroCodg(((Logradouro) listLogradouro.get(jcbLogradouro.getSelectedIndex()-1)) );
entidadeConta.setTipoCodg(((TipoConta) listTipoConta.get(jcbTipo.getSelectedIndex()-1)) );
entidadeConta.setUf((listUf.get(jcbUf.getSelectedIndex()-1)).getUf());
entidadeConta.setAgencia(jtfAgencia.getText());
entidadeConta.setBairro(jtfBairro.getText());
entidadeConta.setCelular(jtfCelular.getText());
entidadeConta.setCep(jtfCep.getText());
entidadeConta.setCidade(jtfCidade.getText());
entidadeConta.setConta(jtfConta.getText());
entidadeConta.setDescEndereco(jtfEndereco.getText());
entidadeConta.setDescricao(jtfDescricao.getText());
entidadeConta.setTelefone(jtfTelefone.getText());
entidadeConta.setFax(jtfFax.getText());
entidadeConta.setGerente(jtfGerente.getText());
entidadeConta.setNumero(jtfNumero.getText());
entidadeConta.getContasPK().setPessoaCodg(((Pessoa) listPessoaEm.get(jcbEmpresa.getSelectedIndex()-1)).getCodigo());
conta.edit(entidadeConta,(Pessoa) listPessoaEm.get(jcbEmpresa.getSelectedIndex()-1));
mapaBotoes.put(jpnBotoes, "10111");
Formatacampos.habilitaBotoes(jpnBotoes, (String)mapaBotoes.get(jpnBotoes));
jlbMensagem.setText("Conta Alterada com Sucesso!");
}
}catch(RuntimeException rue){
TrataErros.mostrarErro(rue.toString());
}
}