Hibernate: dúvida na remoção de objeto

0 respostas
D

Senhores, tenho uma dúvida aqui... estou utilizando Hibernate e salvando um determinado objeto (Pai) que possui um Set<> de outro objeto (Filho). Até aí tdo bem, está salvando perfeitamente. Alterações realizadas nesses objetos também estão sendo gravadas normalmente. A questão é quando eu tento excluir um item (Filho) desse Set<>, ele não remove automaticamente, simplesmente não faz nada.

Imagine a seguinte situação: fiz um saveUpdate de um Pai com três filhos. Salvou perfeitamente. Em seguida, fiz um saveUpdate desse mesmo Pai, porém com apenas dois filhos. O terceiro filho continua lá!

Alguém sabe pq isso pode estar acontecendo?

Segue um esboço dos pojos pra ilustrar melhor

@Entity
@Table(name = "Pai")
public class Pai implements java.io.Serializable {

    private Integer idPai;
    private String name;
    private String description;
    private Set<Filho> filhos = new HashSet<Filho>(0);

    @OneToMany(cascade = {CascadeType.PERSIST,
                          CascadeType.MERGE,
                          CascadeType.REMOVE}, fetch = FetchType.LAZY, mappedBy = "pai")
    @org.hibernate.annotations.Cascade (value = org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
    public Set<Filho> getFilhos() {
        return this.filhos;
    }

    //demais get's e setter's
}
@Entity
@Table(name = "Filho")
public class Filho implements java.io.Serializable {

    private Integer idFilho;
    private Pai pai;
    private String name;
    private String description;

    //get's e setter's
}
Espero ter conseguido ser claro...

Obrigado a todos!

Criado 7 de outubro de 2010
Respostas 0
Participantes 1