Tenho a seguinte situação:
Tenho um objeto PAI: CESTA.
dentro desse objeto CESTA eu tenho uma lista de objetos FILHOS: CESTAITEM.
eu quero gravar a cesta e que os fihlos sejam salvos também, ou seja, dou um session.saveOrUpdate(cesta);
O mapeamento está assim (abreviado):
public abstract class Cesta {
@Id @GeneratedValue(strategy=GenerationType.AUTO, generator = "SE_CESTA")
@Column (name = "ID_CESTA", nullable=false, length=5)
private Long id;
@SuppressWarnings("unchecked")
@OneToMany(targetEntity = CestaItemEntity.class, fetch = javax.persistence.FetchType.LAZY, mappedBy= "cesta")
@Cascade(value={CascadeType.ALL,CascadeType.DELETE_ORPHAN})
@JoinColumn(name="ID_CESTA", referencedColumnName="ID_CESTA")
private Set<CestaItem> cestaItem;
... gets e sets..
}
Ok.. o "gravar" funciona ok . Grava a cesta e os objetos filhos.
Mas se na minha sessão eu incluo um novo objeto e excluo outro dos objetos filhos e gravo denovo a cesta, ou seja, dou um session.saveOrUpdate(cesta) com a nova lista de objetos filhos, o hibernate não está excluindo o objeto que nao está mais na lista e está incluindo o novo.
Eu gostaria de saber se o mapeamento está certo e se alguem tem alguma dica...
Ficou "entendível" ou complicado ?
Obrigado !