Hi Gokhan, I've been trying to play around with the code you provided on this issue. Unlike the 5mins quick start examples provided for the OpenJPA download, the build.xml wasn't a straightforward root for creating an Eclipse project. So, I did that by some manual importing.
I've reached the point where I'm being told: ------------------------------------------------------------------------------ [java] javax.persistence.PersistenceException: Invalid or inaccessible provider class: org.apache.openjpa.persistence.PersistenceProviderImpl [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute( ExecuteJava.java:180) [java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:710) ------------------------------------------------------------------------------ Still cryptic to me. I'll try again later.. For now, what my little bit of poking around yields is the following question: Is the use of <taskdef name="openjpac" classname=" org.apache.openjpa.ant.PCEnhancerTask"/> the equivalent of what is done for the examples with <!-- Specifying the openjpa jar as the javaagent argument is necessary in order for automatic class-enhancement to work. --> <jvmarg value="-javaagent:${javaagent}"/> ? Any ideas on my stack trace above? (I don't have an explicit provider setting in persistence.xml) J-Philippe. On 5/3/07, Gokhan Ergul (JIRA) <[EMAIL PROTECTED]> wrote:
[ https://issues.apache.org/jira/browse/OPENJPA-231?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12493193] Gokhan Ergul commented on OPENJPA-231: -------------------------------------- Further testing reveals that the patch I submitted solves only detached object merge case. Persisting and later merging in a single EntityManager session produces unreliable results, sometimes insert statements of C precede insert statements of B resulting in a FK violation, other times the statements are executed in the correct order --I have no idea as to why the order would change in different test runs with identical configuration. > 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 > Attachments: jira-test-case.zip > > > 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.