[RESOLVIDO] Clonar Objeto e persistir com JPA

, ,

Gostaria de uma solução para persistir uma cópia do objeto, tenho que copiar porque quero colocar null no id, por exemplo;

Carrego um objeto Endereco do banco de dados, ele vem com Cidade e Estado (Herança), altero o número e tenho que criar uma cópia para persistir no banco de dados.

Implementando a interface Cloneable e subscrevendo o método clone, não estou conseguindo persistir,

public Endereco clone() throws CloneNotSupportedException {

  Endereco copia =(Endereco) super.clone();
  copia.cidade =  this.cidade.clone();
  return copia;

}

Caused by: java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing

cascade=CascadeType.ALL, também não funcionou.

Clonar o objeto não é a melhor solução. Quando você faz isso, acaba perdendo a referência do JPA.
A melhor abordagem é criar um novo objeto, preencher seus atributos e então tentar persistir.

1 curtida

entendi, achei que a melhor solução fosse o clone.