Hi All, I have the same issue under weblogic 10.0(This uses openjpa 0.9.7)
Is any one aware of a workaround for this? Best Regards Adel 2008/5/13 John Leach <[EMAIL PROTECTED]>: > > Dear list, > > I must stop talking to myself. Yes it is a bug > https://issues.apache.org/jira/browse/OPENJPA-327 OPENJPA-327 > > The test case uses @PostUpdate, but the same thing seems to happen for > @PreUpdate. Sigh. > > Nonetheless, I still need help with the second showstopper... > > John > > > John Leach wrote: > > > > Dear list, > > The first showstopper InvalidStateException: Attempt to set column > > "client.version" to two different values... where the version field is > > being updated (this is an optimistic locking field, and has a @Version > > annotation), is being caused by a @PreUpdate annotation in the abstract > > model class. > > > > If I remove the annotation, all works fine, put it back and the exception > > returns. > > > > I am inclined to think that this is a bug - in the above example a client > > (many to one) is removed from a user (one to many), then I call flush. > > Firstly I don't understand why the client is updated, but this may have > to > > do with the fact that I haven't been able to set a 'delete orphan' > cascade > > yet. Still, no values in the client were changed (by my code, at least). > > The update calls the @PreUpdate method, but then seems to increment the > > version number *again*. > > > > The second showstopper is finding a way to change the metadata before an > > EntityManager is created. The intention is to provide a 'third' > > alternative to annotations and/or persistence.xml, where the entity > > classes contain only JPA annotations, with any remaining changes being > > made programmatically. The one-to-many example defines CascadeType.ALL, > > but actually requires a 'delete-orphans' extension for the tests to > > succeed. Again, my many attempts at hooking into the properties > > openjpa.BrokerFactory or openjpa.BrokerImpl or openjpa.MetaDataFactory > all > > met with failure of one sort or the other (mostly ClassCast exceptions > > within the OpenJPA code). > > > > Any help would be greatly appreciated. > > > > The code is available in an open source project, called Spikes and can be > > downloaded via Subversion with the command: > > > > svn checkout https://lab.jugtorino.it/svn/sandbox/spikes/trunk spikes > > > > Best regards > > John > > > > > > John Leach wrote: > >> > >> Hello list, > >> Spikes is now Java 5 compatible. I also fixed a nasty mishtak in the > >> manager. Say after me persist/merge != save/update. Added ant task > >> openjpac bytecode twiddling before running the tests, and guess what? > >> Same problem, er, persists. Sigh. > >> > >> John > >> > >> > >> John Leach wrote: > >>> > >>> Hello Craig, > >>> Oops, I compiled parancoe-yaml with Eclipse, and didn't check the > >>> version. Should compile with Java 5 though. My mistake. Spike compiles > >>> with the ant task set to 1.5 source and target. I'll recompile the jar > >>> file and update the svn repository this weekend. > >>> > >>> John > >>> > >>> > >>> Craig L Russell wrote: > >>>> > >>>> Hi John, > >>>> > >>>> Does the project require Java 6? I checked out the sources and cd > >>>> trunk; ant. It appears that one of the dependencies is compiled with > >>>> Java 6. > >>>> test-compile: > >>>> [javac] Compiling 29 source files to /Users/clr/spikes/trunk/bin > >>>> [javac] /Users/clr/spikes/trunk/java/src/org/syger/fixtures/ > >>>> YamlHelper.java:28: cannot access org.parancoe.yaml.Yaml > >>>> [javac] bad class file: /Users/clr/spikes/trunk/extlib/parancoe- > >>>> yaml.jar(org/parancoe/yaml/Yaml.class) > >>>> [javac] class file has wrong version 50.0, should be 49.0 > >>>> [javac] Please remove or make sure it appears in the correct > >>>> subdirectory of the classpath. > >>>> [javac] import org.parancoe.yaml.Yaml; > >>>> [javac] ^ > >>>> [javac] 1 error > >>>> > >>>> more below... > >>>> > >>>> On May 10, 2008, at 7:38 AM, John Leach wrote: > >>>> > >>>>> > >>>>> Dear list, > >>>>> As part of a (very) small open source project to provide domain > entity > >>>>> mapping and association examples, together with a programmatic > >>>>> interface to > >>>>> reach outside the JPA 1.0 specifications, I am struggling with two > >>>>> problems > >>>>> using OpenJPA. > >>>>> > >>>>> I had better warn you all that I am a freelance consultant working > >>>>> in Italy > >>>>> and I use and will be using this work to sell both the advantages and > >>>>> disadvantages (but with solutions) of using JPA 1.0. to my clients. > >>>>> > >>>>> The first showstopper is an InvalidStateException: Attempt to set > >>>>> column > >>>>> "client.version" to two different values... where the version field > >>>>> is being > >>>>> updated (this is an optimistic locking field, and has a @Version > >>>>> annotation), the SQL query being performed seems to be: > >>>>> UPDATE client SET lastUpdated = ?, version = ? WHERE id = ? AND > >>>>> version = ? > >>>>> [params=(Timestamp) 2008-05-10 15:58:16.593, (int) 3, (long) 3, > >>>>> (int) 2] > >>>> > >>>> This SQL seems correct. It's updating the lastUpdated and version > >>>> columns and verifying that the version is correct. Where does this > >>>> error occur? > >>>> > >>>> Craig > >>>>> > >>>>> The same annotated entities work just fine with Hibernate and > >>>>> EclipseLink - > >>>>> for what that's worth. > >>>>> I have even tried adding openjpac in the ant task, but the results > >>>>> remain > >>>>> the same. > >>>>> I am convinced that this is a Spring/OpenJPA configuration problem, > >>>>> but > >>>>> being a relative novice with Spring (and OpenJPA) I have been > >>>>> beating my > >>>>> head against the proverbial brick wall for two days, and not even a > >>>>> dent in > >>>>> the wall to show for my efforts. > >>>>> > >>>>> The second showstopper is finding a way to change the metadata > >>>>> before an > >>>>> EntityManager is created. The intention is to provide a 'third' > >>>>> alternative > >>>>> to annotations and/or persistence.xml, where the entity classes > >>>>> contain only > >>>>> JPA annotations, with any remaining changes being made > >>>>> programmatically. The > >>>>> one-to-many example defines CascadeType.ALL, but actually requires a > >>>>> 'delete-orphans' extension for the tests to succeed. Again, my many > >>>>> attempts > >>>>> at hooking into the properties openjpa.BrokerFactory or > >>>>> openjpa.BrokerImpl > >>>>> or openjpa.MetaDataFactory all met with failure of one sort or the > >>>>> other > >>>>> (mostly ClassCast exceptions within the OpenJPA code). > >>>>> > >>>>> Any help would be greatly appreciated. I am working 'in > >>>>> collaboration with' > >>>>> two Java User Groups (Torino and Trento), but it's really me who > >>>>> wrote most > >>>>> of the code. > >>>>> > >>>>> The open source project, called Spikes (guess why) can be downloaded > >>>>> via > >>>>> Subversion with the command: > >>>>> svn checkout https://lab.jugtorino.it/svn/sandbox/spikes/trunkspikes > >>>>> There is a Trac site at > >>>>> http://lab.jugtorino.it/trac/sandbox/wiki/Spikes > >>>>> , > >>>>> which I have converted to English in most places, and also an > >>>>> article (which > >>>>> started the project rolling) > >>>>> http://www.syger.it/Tutorials/JPA10Gotchas.html > >>>>> > >>>>> Best regards > >>>>> John Leach, Verona, Italy > >>>>> -- > >>>>> View this message in context: > >>>>> > http://www.nabble.com/InvalidStateException%3A-Attempt-to-set-column-%22client.version%22-to-two-different-values-tp17163045p17163045.html > >>>>> Sent from the OpenJPA Users mailing list archive at Nabble.com. > >>>>> > >>>> > >>>> Craig Russell > >>>> Architect, Sun Java Enterprise System > http://java.sun.com/products/jdo > >>>> 408 276-5638 mailto:[EMAIL PROTECTED] > >>>> P.S. A good JDO? O, Gasp! > >>>> > >>>> > >>>> > >>>> > >>> > >>> > >> > >> > > > > > > -- > View this message in context: > http://www.nabble.com/InvalidStateException%3A-Attempt-to-set-column-%22client.version%22-to-two-different-values-tp17163045p17204927.html > Sent from the OpenJPA Users mailing list archive at Nabble.com. > > -- Kind regards Adel
