Incorrect handling of cascading bidirectional collections during merge/attach
-----------------------------------------------------------------------------
Key: OPENJPA-231
URL: https://issues.apache.org/jira/browse/OPENJPA-231
Project: OpenJPA
Issue Type: Bug
Components: kernel
Affects Versions: 0.9.7
Environment: platform-independent
Reporter: Gokhan Ergul
As posted on open-jpa-dev mailing list:
-----
I'm having a problem merging an entity, here's the simplified structure:
Class A { @OneToMany(cascade=CascadeType.ALL, mappedBy="parent")
Set<B> b_set;
...
}
Class B {
@ManyToOne
A parent;
@OneToMany(cascade=CascadeType.ALL, mappedBy="parent")
Set<C> c_set;
...
}
Class C {
@ManyToOne
B parent;
...
}
New instances of A,B,C are persisted correctly. However when I retrieve A, add
some entries to A.b_set (with some of the new B entries have attached C's),
em.merge(A) fails:
- If A is detached:
org.apache.openjpa.persistence.ArgumentException: Encountered new object
"[EMAIL PROTECTED]" in persistent field "C.parent" of managed object "[EMAIL
PROTECTED]" during attach. However, this field does not allow cascade attach.
You cannot attach a reference to a new object without cascading.
- If A is not detached:
C instances are inserted before B instances, resulting in a
foreign key violation.
Setting openjpa.jdbc.SchemaFactory to 'native(ForeignKeys=true)' does not seem
to have an effect.
----
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.