JPA/hibernate multiplos objetos

4 respostas
M

Pessoal uma dúvida sobre persistência com JPA.

Modelo:

Entidades: A,B,C,D

A → B
B → C
D → C

Em que → representa 1 para N

Ao persistir em.persist(obj); qual objeto deve ser persistido?

Se persisto o objeto ?A? ele reclama (object references an unsaved transient instance - save the transient instance before flushing: D->C). Se persisto o objeto ?D? ele reclama (object references an unsaved transient instance - save the transient instance before flushing: C->B).

O JPA/hibernate consegue persistir o grafo de objetos todo? Como proceder?

Desde já agradeço por qualquer ajuda.

4 Respostas

rafaelk

Você precisa anotar @OneToMany(cascade = CascadeType.ALL) nas coleções, provavelmente já funcione.

M

em todas as oneToMany e ManyToOne?

rafaelk

Somente nas @OneToMany

M

Ainda estou na batalha,

Agora com o seguinte problema:

Gero classes para chaves compostos A_pk e mapeio usando @Embeddable

eu faço new em A e new A_pk e coloco A_pk em A.

A rebebe uma chave de B, que deve ir para A_pk. A chave de B é gerado normalmente por uma sequence. Ao persistir ele reclama que A_pk nao esta com a chave de B, A_pk está com 0 enquanto B esta com id =10 por exemplo,

Como colocar a chave de B no A_pk de A dinamicamente?

Sou obrigado a fazer em.persist(B); e nao posso, ao mandar persistir pegar o id de B e colocar em A.

Obrigado pela ajuda.

Criado 15 de outubro de 2009
Ultima resposta 16 de out. de 2009
Respostas 4
Participantes 2