0
I have the following structure:
A.class
B.class
C.class
D.class
A.class
contains many B.class
containing a D.class
C.class
contains many D.class
containing a B.class
Whereas D.class
is persisted in CascadeType.Persist
when C.class
is persisted.
Scenario: I seek a C.class
update a class attribute, for example, add the sequential number and enter a D.class
that will be persisted in cascade. For each update operation performed, a D.class
is inserted, similar to a log.
To accomplish this situation I call the merge method (C.class
) that updates the C.class
and also persists a D.class
.
However, when I do this previous operation, I need to perform a creation of the A.class
in the same transaction, so I insert a A.class
containing at least one B.class
that has relationship to my D.class
which was cascaded in the previous situation.
The following problem occurs when I do EntityManager.persist(A.class)
:
Caused by: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : br.com.criabyte.model.aplicacao.financeiro.cxa.FinCxaPlanoLcto.finCprParcelaLcto -> br.com.criabyte.model.aplicacao.financeiro.cpr.FinCprParcelaLcto
That is, the relation could not find that previously persisted object cascading.
FinCxaPlanoLcto
is the B.class
containing a FinCprParcelaLcto
which is the object of D.class
.
Can anyone tell me what I might be doing to solve this problem?