Hi, I am not familiar enough with runtime enhancement, so please accept my explanation with certain degree of disbelief.
OpenJPA tracks the dirty fields of managed instances and traditional (i.e. build-time) enhancement ensures that at bytecode level on field mutators. Runtime enhancement is also able to track dirty fields when a) Java 6 is the runtime b) Java 5 and entity using property access and are loaded from database (not for new instances) In Java 5, the entities with field access are not tracked and hence during commit session, OpenJPA resorts to state comparison for such cases. This checking is skipped on certain cases, as described below: private boolean needsDirtyCheck() { if (isIntercepting()) return false; if (isDeleted()) return false; if (isNew() && !isFlushed()) return false; + if (!isTransactional()) + return false; return true; } Including non-transactional entities to skip dirty check resolves the issue you have encountered. Exclusion of nontransactional entities form dirty checking sounds logical to me but due to my limited understanding of runtime enhancement I am not able to confirm. * <p>Fields are tracked for all classes that are run through the OpenJPA * enhancer prior to or during deployment, and all classes (enhanced or * unenhanced) in a Java 6 environment or newer.</p> * * <p>In a Java 5 VM or older: * <br>- instances of unenhanced classes that use * property access and obey the property access limitations are tracked * when the instances are loaded from the database by OpenJPA, and are * not tracked when the instances are created by application code. * <br>- instances of unenhanced classes that use field access are * never tracked.</p> Change tracking of classes Marc Logemann-3 wrote: > > Hi, > > yes, i am using a spring-tomcat-weaver.jar in Tomcat6 (with Java5) to > achieve JPA runtime enhancement via Spring. > > What do you mean with workaround? Should this work "normally" ? I was > quite happy with runtime enhancement, would be sad to leave that > path.... > > thx for infos.... > > -- > Marc Logemann > blog http://logemannreloaded.blogspot.com > privat http://www.logemann.org > > > > Am 14.07.2008 um 16:22 schrieb Pinaki Poddar: > >> >> Hi, >> Are you using runtime enhancement with Java 5? >> If yes, the immediate workaround is to enhance the persistent >> classes at >> build-time. >> >> -- >> View this message in context: >> http://n2.nabble.com/no-state-snapshot-available-on-embedded-mapping-tp526616p527331.html >> Sent from the OpenJPA Users mailing list archive at Nabble.com. >> > > > -- View this message in context: http://n2.nabble.com/no-state-snapshot-available-on-embedded-mapping-tp526616p527542.html Sent from the OpenJPA Users mailing list archive at Nabble.com.