Hibernate e Clonagem

1 resposta
Rubem_Azenha

Pessoal,

Tenho uma classe que vários relacionamentos N-N e 1-N Ela é a peça central do meu sistema, podemos dizer.

Em dado momento, eu quero “clona-la”. Na verdade, eu quero pegar todos os relacionamentos dela, colocar em outra identica, só mudando o atributo nome.

Bem, vamos dar nomes aos bois (ou ovelhas, já que estamos falando de clonagem :P)

Tenha uma classe Atividade que tem um Relacionamento 1-N com a classe Fase, 1-N com a classe Parametro, N-1 com a classe Categoria, N-N com a classe Usuário.

Eu tenho uma atividade toda preenchida e quero clona-la mudando apenas o atributo nome.

Idéia 1: recuperar a atividade que eu quero clonar id, colocar o nome que eu quero, e setar o id como nulo.

Idéia 2: fazer na mão.

O problema é que eu não posso ficar brincando muito com o banco de dados e com a aplicação, mas tenho o GUJ disponível para eu perguntar se alguém sabe como fazer isso antes de eu sair criando um outro ambiente…

Enfim, alguém sabe?

1 Resposta

Mauricio_Linhares

Se funcionar, eu prefiro ficar com a idéia 1, mas eu acho que não funciona porque o Hibernate mantém referências aos objetos que estão na sessão e ele vai saber que o objeto já está no banco de dados e vai tentar dar um Update na chave primária.

O que você pode fazer é simplesmente copiar as propriedades de do objeto persistido pra um objeto novo (excluindo o ID) e colocando o nome que você quer lá (o Commons Beanutils tem isso pronto), é mais simples e mais seguro.

Criado 18 de abril de 2006
Ultima resposta 18 de abr. de 2006
Respostas 1
Participantes 2