<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Não está dando delete no @OneToMany na remoção do relacionamento! "]]></title>
		<link>http://www.guj.com.br/posts/list/5.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Não está dando delete no @OneToMany na remoção do relacionamento! "]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Não está dando delete no @OneToMany na remoção do relacionamento! </title>
				<description><![CDATA[ Pessoal,<br /> <br /> Tenho duas classes<br /> <br /> Sistema e DivisoesSistema<br /> <br /> Sistema tem uma lista de divisõesSistema<br /> <br /> [code]<br />     @OneToMany(cascade=CascadeType.ALL)<br />     @JoinColumn(name="ID_SIST_FK")<br />     public List&lt;DivisaoSistema&gt; getDivisoesSistema() {<br />         return this.divisoesSistema;<br />     }[/code]<br /> <br /> DivisoesSistema tem um long que é o ID_SIST_FK<br /> [code]<br />     @Column(name="DIVIS")<br />     public String getDivisao() {<br />         return divisao;<br />     }[/code]<br /> <br /> No banco são duas tabelas<br /> Sistema e DivisaoSistema,<br /> DivisaoSistema tem uma FK para Sistema que é o ID_SIST_FK e Sistema não tem nenhum relacionamento com DivisaoSistema.<br /> <br /> Meu problema é seguinte, <br /> quando tento excluir alguma DivisaoSistema da lista de divisoesSistema na classe Sistema, ao invés dele fazer um DELETE no registro no banco,<br /> ele faz update na tabela DivisaoSistema setando o ID_SIST_FK como null,<br /> como eu faço para ele excluir, tipo delete-orphan?<br /> <br /> Tentei colocar esse annotation que achei na net<br /> <br /> [code]<br /> @org.hibernate.annotations.Cascade (value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN)[/code]<br /> <br /> Mas não resolveu, alguém pode me ajudar?<br /> <br /> Abs,<br /> Pablo]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/59043/310168.java</guid>
				<link>http://www.guj.com.br/posts/preList/59043/310168.java</link>
				<pubDate><![CDATA[Tue, 8 May 2007 18:16:31]]> GMT</pubDate>
				<author><![CDATA[ phstc]]></author>
			</item>
			<item>
				<title>Re:Não está dando delete no @OneToMany na remoção do relacionamento! </title>
				<description><![CDATA[ Não seria: "all-delete-orphan"?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/59043/310246.java</guid>
				<link>http://www.guj.com.br/posts/preList/59043/310246.java</link>
				<pubDate><![CDATA[Tue, 8 May 2007 19:41:46]]> GMT</pubDate>
				<author><![CDATA[ vegetasw]]></author>
			</item>
			<item>
				<title>Re:Não está dando delete no @OneToMany na remoção do relacionamento! </title>
				<description><![CDATA[ no annotation não tem mais essa opção, somente all ou delete-orphan]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/59043/310291.java</guid>
				<link>http://www.guj.com.br/posts/preList/59043/310291.java</link>
				<pubDate><![CDATA[Tue, 8 May 2007 20:38:48]]> GMT</pubDate>
				<author><![CDATA[ phstc]]></author>
			</item>
			<item>
				<title>Re:Não está dando delete no @OneToMany na remoção do relacionamento! </title>
				<description><![CDATA[ Encontrei o mesmo problema, alguém encontrou uma solução ? Eu alterei a coluna da tabela para null pois depois que faz o update o hibernate faz o delete das entidades órfas. O problema é que o banco de dados fica sem integridade.<br /> <br /> Se alguém puder ajudar posta aí...<br /> <br /> Valeu]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/59043/369306.java</guid>
				<link>http://www.guj.com.br/posts/preList/59043/369306.java</link>
				<pubDate><![CDATA[Thu, 27 Sep 2007 08:54:29]]> GMT</pubDate>
				<author><![CDATA[ fre_d]]></author>
			</item>
			<item>
				<title>Re:Não está dando delete no @OneToMany na remoção do relacionamento! </title>
				<description><![CDATA[ Na classe Sistema:<br /> [code]@Entity<br /> public class Sistema  {<br /> 	//[...]<br /> 	@OneToMany(cascade=CascadeType.ALL, mappedBy="divisao")<br /> 	@JoinColumn(name="ID_SIST_FK")<br /> 	private List&lt;DivisaoSistema&gt; divisoesSistema;<br /> 	//[...]<br /> }[/code]<br /> <br /> Na classe DivisaoSistema:<br /> [code]@Entity<br /> public class DivisaoSistema {<br /> 	//[...]<br /> 	@ManyToOne(optional=false)<br /> 	@Column(name="DIVIS")<br /> 	private Sistema divisao;<br /> 	//[...]<br /> }[/code]<br /> <br /> Não acredito que precise colocar a anotação no atributo, tenta primeiro colocando no método, mesmo. Caso não funcione tente no atributo, mas acho pouco provável que faça diferença neste caso.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/59043/369415.java</guid>
				<link>http://www.guj.com.br/posts/preList/59043/369415.java</link>
				<pubDate><![CDATA[Thu, 27 Sep 2007 11:18:59]]> GMT</pubDate>
				<author><![CDATA[ acdesouza]]></author>
			</item>
			<item>
				<title>Re:Não está dando delete no @OneToMany na remoção do relacionamento! </title>
				<description><![CDATA[ Existe alguma forma de fazer sem ter que adicionar @ManyToOne na classe DivisaoSistema ?<br /> <br /> ex.<br /> [code]@Entity   <br /> public class DivisaoSistema {   <br />     //[...]   <br />     @Column(name="DIVIS")   <br />     private Integer idSistema;   <br />     //[...]   <br /> }  [/code] <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/59043/369456.java</guid>
				<link>http://www.guj.com.br/posts/preList/59043/369456.java</link>
				<pubDate><![CDATA[Thu, 27 Sep 2007 15:02:43]]> GMT</pubDate>
				<author><![CDATA[ fre_d]]></author>
			</item>
			<item>
				<title>Re:Não está dando delete no @OneToMany na remoção do relacionamento! </title>
				<description><![CDATA[ Não que eu saiba. Mas qual o problema que você está vendo em adicionar o Sistema na classe DivisaoSistema?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/59043/369461.java</guid>
				<link>http://www.guj.com.br/posts/preList/59043/369461.java</link>
				<pubDate><![CDATA[Thu, 27 Sep 2007 15:11:36]]> GMT</pubDate>
				<author><![CDATA[ acdesouza]]></author>
			</item>
			<item>
				<title>Re:Não está dando delete no @OneToMany na remoção do relacionamento! </title>
				<description><![CDATA[ <br /> Se não utilizar @ManyToOne quando carregar a classe DivisaoSistema não preciso carregar a classe Sistema.<br /> <br /> Consegui fazer assim<br /> Classe: DisciplinaCurriculo<br /> [code]	@OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})<br /> 	@Cascade(value={org.hibernate.annotations.CascadeType.ALL, org.hibernate.annotations.CascadeType.DELETE_ORPHAN})<br /> 	@JoinColumn(name="id_disciplina_curriculo")<br /> 	@MapKey(name="idDisciplina")<br /> 	public Map&lt;Integer, IntegridadePrEqRp&gt; getIntegridadePrEqRp() {<br /> 		return integridadePrEqRpItens;<br /> 	}<br /> <br /> 	public void setIntegridadePrEqRp(Map&lt;Integer, IntegridadePrEqRp&gt; integridadePrEqRpItens) {<br /> 		this.integridadePrEqRpItens = integridadePrEqRpItens;<br /> 	}[/code]<br /> <br /> <br /> Classe: IntegridadePrEqRp<br /> [code]	@Column(name = "id_disciplina_curriculo", nullable = false, insertable=false, updatable=false)<br /> 	public java.lang.Integer getIdDisciplinaCurriculo() {<br /> 		return this.idDisciplinaCurriculo;<br /> 	}<br /> <br /> 	public void setIdDisciplinaCurriculo(java.lang.Integer idDisciplinaCurriculo) {<br /> 		this.idDisciplinaCurriculo = idDisciplinaCurriculo;<br /> 	}[/code]<br /> <br /> Só que dessa forma é necessário que a coluna id_disciplina_curriculo da classe IntegridadePrEqRp aceite null. Pois o hibernate faz o update IntegridadePrEqRp id_disciplina_curriculo = null e depois faz o delete.<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/59043/369561.java</guid>
				<link>http://www.guj.com.br/posts/preList/59043/369561.java</link>
				<pubDate><![CDATA[Thu, 27 Sep 2007 18:41:37]]> GMT</pubDate>
				<author><![CDATA[ fre_d]]></author>
			</item>
			<item>
				<title>Re:Não está dando delete no @OneToMany na remoção do relacionamento! </title>
				<description><![CDATA[ [quote=fre_d] Se não utilizar @ManyToOne quando carregar a classe DivisaoSistema não preciso carregar a classe Sistema. [/quote]<br /> <br /> Tem certeza? É que eu tenho um sistema com as classes assim:<br /> [code]@Entity<br /> public class Pedido {<br /> //[...]<br />     @OneToMany(cascade=CascadeType.ALL, mappedBy="pedido")<br />     private List&lt;PedidoMaterial&gt; materiaisPedidos;<br /> //[...]<br /> }[/code]<br /> <br /> E a classe PedidoMaterial que guarda os atributos da associação entre Pedido e Material.<br /> [code]@Entity<br /> public class PedidoMaterial {<br /> //[...]<br />     @ManyToOne(optional=false)<br />     private Pedido pedido;<br /> //[...]<br /> }[/code]<br /> <br /> E se eu faço a consulta hql:<br /> [code]select pm<br /> from PedidoMaterial pm<br /> where pm.id = 13[/code]<br /> <br /> O Hibernate gera a consulta:<br /> [code]select<br />   pedidomate0_.id as id8_,<br />   pedidomate0_.pedido_id as pedido6_8_,<br />   pedidomate0_.material_id as material5_8_,<br />   pedidomate0_.quantidade as quantidade8_,<br />   pedidomate0_.precoCompra as precoCom3_8_,<br />   pedidomate0_.precoVenda as precoVenda8_ <br />  from<br />   shaper.PedidoMaterial pedidomate0_ <br />  where<br />   pedidomate0_.id=13[/code]<br /> <br /> Isto é, não faz consulta sobe o Pedido. Tem certeza de que está acontecendo isso?  :? <br /> Qual a versão do Hibernate você está usando? Não teria um [b]fetch=FetchType.EAGER[/b] no seu [b]@ManyToOne[/b], perdido, por aí, não?  :wink: ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/59043/370085.java</guid>
				<link>http://www.guj.com.br/posts/preList/59043/370085.java</link>
				<pubDate><![CDATA[Sat, 29 Sep 2007 14:20:21]]> GMT</pubDate>
				<author><![CDATA[ acdesouza]]></author>
			</item>
			<item>
				<title>Re:Não está dando delete no @OneToMany na remoção do relacionamento! </title>
				<description><![CDATA[ POST REPETIDO, FAVOR APAGAR]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/59043/370086.java</guid>
				<link>http://www.guj.com.br/posts/preList/59043/370086.java</link>
				<pubDate><![CDATA[Sat, 29 Sep 2007 14:23:53]]> GMT</pubDate>
				<author><![CDATA[ acdesouza]]></author>
			</item>
	</channel>
</rss>