Problema em relacionamento na hora de excluir em hibernate

2 respostas
BiraBoy

Tenho uma classe num relacionamento muitos-para-um. Onde o lado “muitos” enxerga o um, mas o um não enxerga o muitos. A idéia é associar o muitos ao um, e quando excluir o muitos, o um nem saber. Neste caso tenho uma classe Material com relacionamento muitos-para-um com a classe GeneroMaterial. Material enxerga genero, mas genero não enxerga material.

Quando crio um material eu associo ele a um genero e quando excluo o material o genero permanece.

Criar e atualizar material não tem sido problema, mas quando excluo ele, dá uma TransientExceptio:

object references an unsaved transient instance - save the transient instance before flushing: GeneroMaterial

O que acontece é que eu pego o ID de material, instancio uma classe material e deleto. Por padrão na instanciação de uma entidade eu coloco, no método construtor, string como nulo e numeros como 0.

Como eu posso fazer pra excluir o objeto?

Eis o mapeamento do relacionamento em Material:

GeneroMaterial não tem mapeamento para Material.

2 Respostas

F

Olá,

Tu nao deve fazer isso, por mais que pegue o id de um objeto existente no banco e adicione a uma nova instancia desta classe, esse objeto no Hibernate esta no modo transient. E é isso que ta dando erro. O correto seria, pegar o ID, fazer um load no Material e depois excluir.

Cuidado com o cascade no relacionamento pra ver se ta certo.

]['s

BiraBoy

Perfeito, era exatamente isso. Obrigado.

Criado 18 de dezembro de 2006
Ultima resposta 19 de dez. de 2006
Respostas 2
Participantes 2