| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2010 00:40:27
|
Will_HRock
JavaGuru
Membro desde: 11/04/2009 20:40:23
Mensagens: 211
Offline
|
Pessoal, estou com um problema para remover as entidades na minha base de dados.
Eu possuo no banco de dados 3 entidades(Shopping, Loja e Produto), com um relacionamento um-para-muitos nesta mesma ordem.
Porém quando vou deletar um Shopping que possui uma loja, ou uma loja que possui muitos produtos, vejo o seguinte erro:
O que eu queria é que quando eu removesse uma loja com produtos, os produtos desta loja automaticamente fossem removidos.
Eu até coloquei o atributo cascade = CascadeType.ALL na anotação das entidades, achei que isso era a solução, mas o problema persiste ainda.
Estou usando o NetBeans 6.8, JPA 2.0.
O que faço? Agradeço desde já a atenção.
This message was edited 2 times. Last update was at 18/02/2010 01:24:45
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2010 06:55:06
|
fbdo
Thread.start()
![[Avatar]](/images/avatar/effc299a1addb07e7089f9b269c31f2f.jpg)
Membro desde: 13/07/2003 14:59:06
Mensagens: 29
Localização: Brasil
Offline
|
Olá Will_HRock!
Não sei se é o caso, você não mandou seu código, mas é muito provável que você não tenha configurado suas entidades para aplicar as alterações em cascata. Então, ou vc exclui as entidades na ordem de forma a não causar o conflito, ou então adiciona na anotação do relacionamento como no exemplo:
@OneToMany(cascade=ALL)
Adicionando ALL será aplicado às entidades associadas todas as operações (INSERT, UPDATE, DELETE) de forma implícita.
Fazendo uma busca rápida, encontrei o artigo http://www.theserverside.com/tt/articles/article.tss?l=JPAObjectModel. Pode ajudar.
Abraços!
Fábio Braga de Oliveira
http://www.smallthoughts.com.br
|
Fábio Braga de Oliveira
http://www.smallthoughts.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2010 06:59:39
|
fbdo
Thread.start()
![[Avatar]](/images/avatar/effc299a1addb07e7089f9b269c31f2f.jpg)
Membro desde: 13/07/2003 14:59:06
Mensagens: 29
Localização: Brasil
Offline
|
Nossa, Will, desculpe a minha falha.
Acho que não acordei ainda, não vi a segunda parte da sua mensagem, onde vc dizia que já colocou o cascade.ALL.
No caso, tô sem pistas... Pode publicar seu código?
Como eu queria poder apagar uma mensagem... maldito dedo rápido....
|
Fábio Braga de Oliveira
http://www.smallthoughts.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2010 12:10:24
|
Will_HRock
JavaGuru
Membro desde: 11/04/2009 20:40:23
Mensagens: 211
Offline
|
Esse é o código da entidade Loja:
Eu consegui um workaround no método que persiste minha entidade, fazendo o Shopping referenciar a entidade loja ao mesmo tempo que a loja referencia o shopping, assim:
Não sei se é o jeito mais correto mas funcionou, se souber de algo melhor que eu possa fazer agradeço! valeu!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2010 12:49:38
|
fbdo
Thread.start()
![[Avatar]](/images/avatar/effc299a1addb07e7089f9b269c31f2f.jpg)
Membro desde: 13/07/2003 14:59:06
Mensagens: 29
Localização: Brasil
Offline
|
Will, você está usando o EclipseLink com o JPA 2.0, certo? Você está fazendo o weaving das classes? Num projeto meu aqui, eu uso maven e faço weaving estático, pra funcionar eu adicionei no pom.xml:
e no persistence.xml:
Se não estiver fazendo weaving, tenta e fala o resultado. Boa sorte!
|
Fábio Braga de Oliveira
http://www.smallthoughts.com.br |
|
|
 |
|
|
|
|