openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gokhan Ergul (JIRA)" <j...@apache.org>
Subject [jira] Created: (OPENJPA-231) Incorrect handling of cascading bidirectional collections during merge/attach
Date Tue, 01 May 2007 01:08:15 GMT
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 "B@..." in persistent
field "C.parent" of managed object "C@..." 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.


Mime
View raw message