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?
No JPA existe uma annotation chamada @Cascade. Ela é colocada sobre o atributo que vc quer persist junto com a entidade pai, no seu caso colocar sobre o atributo B na classe A.
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.
G
gugabcostaPJ
Ola…
Terias como colocar o codigo desse seu exemplo?
abs
F
fabiofalciPJ
Me perdi antes mesmo de chegar na metade da explicação.
A premissa é simples. Ou cascade ou salve as dependências antes.
Agora, vc pode estar enrascado se tiver dependências circulares com obrigatoriedade, não sei
se é o caso, se for revise o modelo.