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.