Hi,
I got the following error messages from application server. I am very
confused on that. Because this is an isolated entity without any
relationship to the rest of entities.
<4|true|0.9.7> org.apache.openjpa.persistence.InvalidStateException: Attempt
to set column "event.update_version" to two different values: (class
java.lang.Integer)"2", (class java.lang.Integer)"3" This can occur when you
fail to set both sides of a two-sided relation between objects, or when you
map different fields to the same column, but you do not keep the values of
these fields in synch.
Note: This update_version is a mapped-super class's property: @
[EMAIL PROTECTED](name = "update_version") private Integer _version;
And I found the code only performed query and new/persist object. Not intent
to update or merge object.
The error was found before perform query. As you know, system will flush
before query. Here is the stack trace:
at org.apache.openjpa.jdbc.sql.PrimaryRow.setObject(PrimaryRow.java
:335)
at org.apache.openjpa.jdbc.sql.RowImpl.setObject(RowImpl.java:501)
at kodo.jdbc.meta.strats.ColumnPerLockGroupVersionStrategy.update(
ColumnPerLockGroupVersionStrategy.java:166)
at org.apache.openjpa.jdbc.meta.Version.update(Version.java:294)
at
org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.updateIndicators(
AbstractUpdateManager.java:308)
at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.update(
AbstractUpdateManager.java:291)
at
org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(
AbstractUpdateManager.java:149)
at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(
AbstractUpdateManager.java:82)
at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(
AbstractUpdateManager.java:69)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(
JDBCStoreManager.java:511)
at org.apache.openjpa.kernel.DelegatingStoreManager.flush(
DelegatingStoreManager.java:127)
at org.apache.openjpa.datacache.DataCacheStoreManager.flush(
DataCacheStoreManager.java:506)
at org.apache.openjpa.kernel.DelegatingStoreManager.flush(
DelegatingStoreManager.java:127)
at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1970)
at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java
:1868)
at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1639)
at org.apache.openjpa.kernel.QueryImpl.isInMemory(QueryImpl.java
:948)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:782)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:761)
at org.apache.openjpa.kernel.DelegatingQuery.execute(
DelegatingQuery.java:528)
at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java
:222)
at org.apache.openjpa.persistence.QueryImpl.getSingleResult(
QueryImpl.java:282)
--
Best Regards,
Gene Wu