Hibernate não deleta entidade de lista

8 respostas
W

Estou tendo um problema com o hibernate 3… Eu tenho uma entidade A que possui uma lista da entidade B, quando eu coloco um novo elemento na lista B e atualizo A tudo certo… quando eu altero algum valor de um elemento da lista de b e atualizo A tudo certo… mais quando eu deleto um elemento da lista B ele não exclui… Ja tentei fazer um load antes de realizar o update e manipular a lista direto do PersistentSet… só que ai da um erro “Found two representations of the same collection”… Já tentei de tudo e nada… sera que alguem pode me dar uma luz???

Class A { 
   Set<B> bs;
   @OneToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL,    mappedBy ="a" )
   public Set getB();
}

Class B {
    A a;
    @ManyToOne
    @JoinColumn(name = "OID_A") 
    public A getA();

}

8 Respostas

Leandro_BSB

Posta o código de como você está tantando excluir a entidade.

[]s

Leandro

W

Para excluir os filhos eu só monto a nova lista sem o elemento qe vai ser deletado… seto no Pai e dou um session.update no pai… Eu já tentei tambem removendo o elemento da collection e dando update no pai… mais tb não adiantou…

Por exemplo

A a = session.load(A.class, id);

Set b = a.getBs();

b.remove(filho);

session.update(a);
J

Você vai ver que usar a opção do cascade=“all-delete-orphan”, assim se você remover um elemento da Lista e atualizar o Objeto que contém a lista, o Hibernate executará o DELETE.

K

Estou tendo o mesmo problema…
usei o “all-delete-orphan” e o erro que o hibernate passa é:
tenho um usuáio q tem uma lista de criterio, quando troco algum criterio ele deveria remover do banco os criterios q sairam da lista e atualizar os q eu mudei

A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: spc.dto.UsuarioDTO.listaCriterios

o que pode está errado??

[]´s

pissurno

tb estou com o mesmo problema!!!
alguem conseguiu resolver???

flws…

caiotuvo

se puderem da uma estudada no caso pq tb estou com o mesmo problema xD

vlw aeeeeeeee!

dados:






Erro: A collection with cascade=“all-delete-orphan” was no longer referenced by the owning entity instance

C

Dá uma olhada nisso.
É a resposta para os problemas de vocês.

http://hi.baidu.com/ekou/blog/item/aa89e80e8df9ece436d122b4.html

caiotuvo

Bom, esse link está bloqueado aqui no trabalho, rs. mas resolvi aqui colocando o cascade pra “all”. não necessitava ser “all-delete-orphan”. mas vlw aee ! ;D

Criado 11 de maio de 2006
Ultima resposta 23 de jul. de 2009
Respostas 8
Participantes 7