Cascade @OneToMany e @ManyToOne

5 respostas
felixcoutinho

Srs,

estou sem conseguir criar uma associação que permite que os dados sejam inseridos em cascata quando eu persisto a classe principal, vejam como está:

@Entity
@Table(name="recibos")
public class Recibo {
	@OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
	@JoinColumn(name="id_recibo")	
	private List<ItemRecibo> itens;
}
@Entity
@Table(name="itens_recibos")
public class ItemRecibo {
@ManyToOne
	@JoinColumn(name="id_recibo")
	private Recibo recibo;
}

Eu preciso preencher um recibo, preencher os itens do recibo e executar apenas:

reciboDAO.persist(recibo);

Com isso quero que seja persistido tanto o recibo quanto os itens que estão associados a ele.

E que isso também funcione nas operações de Delete, quando deletar um recibo, seus itens sejam deletados juntos.

Se alguem conseguir me dar uma luz de como faço esse relacionamento eu ficaria muito grato!

5 Respostas

T

e oq esta acontecendo ? esta gerando algum erro ?

otaviojava

Qual é o seu problema exatamente ?

R

pessoal, uma duvida que me ocorreu…

quando usar a anotacao @joincolumn

é que pelo que conheco ela serve para indicar qual a coluna esta sendo usada para fazer o relacionamento certo ?

mas isso nao é o mappedBy que faz ?

thanks !

felixcoutinho

Na realidade, o persist está funcionando perfeitamente. Sinceras desculpas.

Porém, o que estou tentando fazer é que quando a última entidade associada a entidade principal for deletada, a entidade principal também seja.

Assim:
Recibo

Item1
Item2
Item3

Quando apagar todos os “Item” a entidade recibo deixe de existir também. Da forma como codifiquei a entidade Recibo continua a existir mesmo que eu apague todos os “Item”.

P

Do jeito que está mapeado se você apagar recibo os itens serão apagados…

Criado 13 de janeiro de 2011
Ultima resposta 13 de jan. de 2011
Respostas 5
Participantes 5