comparação de objetos

3 respostas
S

Olá pessoal!!
estou com problemas para comparar se um objeto é novo ou jà existente no banco de dados. Eu tento editar o objeto, mas ao clicar em salvar (que exerce duas funções salva e editar), ao inveis de editar ele cria um novo objeto.
A fução do botão salvar e escolhida através de uma condição, se o objeto for novo ele salva , se já existir ele edita. Eu utilizei esta condiçao:

salval.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0()){

.
      .
      .
      if(imovel.getId() == null){ 
           .
           .
           .
      }
 }

});

estou utilizando classes entidades e jpaControllers, e o banco derby.
Por favor como eu faço essa comparação.
desde já eu agradeço.

3 Respostas

marcos1EM

Você esta utilizando JPA + Hibernate, certo?

O método saveOrUpdate do hibernate trabalha da seguinte forma:
Se a chave primária existir ele altera, caso contrário, seja null por exemplo, ele gera outro registro. Então se está editando tem que informar o id do registro para que não seja gerado outro objeto
Não sei se essa era sua dúvida, espero ter ajudado.

fantomas

Oi sidnei_servo,

Para que vc consiga atingir seu objetivo e a explicação do marcos1EM seja possível é de extrema importancia vc implementar (sobreescrever) os métodos[b] hashCode() [/b]e [b]equals(Object o)[/b] baseados na chave primária da entidade que vc está mapeando. Desta maneira o ORM terá condições de verificar se o objeto correspondente a entidade existe ou não.

Acredito que este seja o seu problema, espero ter ajudado.

flws

S

OI Pessoal! Eu quero agradecer a ajuda de todos, pois me ajudaram a resolver meu problema.
Um forte abraço a todos!!!

Criado 23 de novembro de 2010
Ultima resposta 29 de nov. de 2010
Respostas 3
Participantes 3