Ajuda com Cascade Hibernate

4 respostas
danilo.dct

Olá pessoal, meu problema é o seguinte:
tenho uma entidade chamada Anunciante que possui uma Collection de Anuncio. daí no meu hbm eu coloquei assim:

<set name="anuncios" >
	<key column="anunciante_id" />
	<one-to-many class="br.com.oftalmotrade.base.Anuncio" />
</set>

crio os objetos… tudo maravilha… porém qd vou editar os dados do Anunciante o hibernate retira a referencia para os anunciantes, deixando a coluna “anunciante_id” na tabela “anuncio” como null. Deduzo que o hibernate entende que, como mandei atualizar o objeto do tipo Anunciante com a Collection nula, não quero manter a associação.

desculpem minha ignorância… mas o que devo fazer para solucionar meu problema?

desde já agradeço a atenção de todos!

4 Respostas

E

Tente:

<set name="anuncios" inverse="true" cascade="save-update">
	<key column="anunciante_id" />
	<one-to-many class="br.com.oftalmotrade.base.Anuncio" />
</set>
danilo.dct

Massa cara… funcionou… nunca havia utilizado o inverse=true. no caso em vez de colocar save-update, eu coloquei delete.

valeu pela ajuda

danilo.dct

Aproveitando este tópico, apresento outro problema relacionado:

tenho um relacionamento many-to-many, onde uma Aula possui uma Collection de Tags.
Daí tenho 3 tabelas:aula, tags, aula_tag.

&lt;set name="tags" table="aula_tag" cascade="all" lazy="false"&gt; &lt;key column="aula_id" /&gt; &lt;many-to-many class="br.com.idaj.base.Tag" column="nome" /&gt; &lt;/set&gt;

meu problema é:
quando removo uma aula, gostaria que todas as referencias fossem removidas na tabela aula_tag. Porém ocorre um erro de “constraint fails”, creio que seja pelo fato de ele tentar remover tb na tabela tag e outra aula estar referenciado esta tag.
Entao, como fazer para remover a referencia apenas na tabela aula_tag e nao em tag?

Valeu!

danilo.dct

ja resolvi colocando no cascade apenas save-update

flw

Criado 23 de abril de 2010
Ultima resposta 4 de mai. de 2010
Respostas 4
Participantes 2