You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Gene Woo <ge...@gmail.com> on 2007/09/17 12:26:32 UTC
Does anyone meet the conflict values in version column?
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: @
Version@Column(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
Re: Does anyone meet the conflict values in version column?
Posted by Gene Woo <ge...@gmail.com>.
Hi,
I reproduced this issue with a POJO environment. Here is the test code. The
SingleEMFTestCase is a mimic of the test cases of OpenJPA. It prepare the
test environment in the same manner.
import javax.persistence.EntityManager;
import javax.persistence.Query;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import com.genewoo.openjpa.test.SingleEMFTestCase;
public class EventTest extends SingleEMFTestCase {
@BeforeClass(alwaysRun = true)
public void setUp() {
setUp(BaseEntity.class, EventEntity.class, AttributeEntity.class);
Assert.assertNotNull(emf);
}
@Test(groups = {"functional"}, enabled=true)
public void testHashTypeEntityDetachedObject() {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
EventEntity eventEntity1 = new EventEntity();
em.persist(updateEvent(eventEntity1));
EventEntity eventEntity2 = new EventEntity();
em.persist(updateEvent(eventEntity2));
Query query = em.createNamedQuery("
AttributeEntity.findByOwnerAndType");
query.setParameter(1, 1);//
UtilModelConstants.ATTRIBUTE_STATUS_ACTIVE);// status cid
query.setParameter(2, 1);
query.setParameter(3, 1);
query.setParameter(4, 1);
query.getResultList();
AttributeEntity attributeEntity1 = new AttributeEntity();
em.persist(updateAttribute(attributeEntity1));
query.setParameter(1, 1);//
UtilModelConstants.ATTRIBUTE_STATUS_ACTIVE);// status cid
query.setParameter(2, 1);
query.setParameter(3, 1);
query.setParameter(4, 1);
query.getResultList();
AttributeEntity attributeEntity2 = new AttributeEntity();
em.persist(updateAttribute(attributeEntity2));
em.getTransaction().commit();
em.close();
}
private AttributeEntity updateAttribute(AttributeEntity attributeEntity)
{
attributeEntity.setFromId(1);
attributeEntity.setTypeCid(1);
attributeEntity.setValueCid(1);
attributeEntity.setFromClassId(1);
attributeEntity.setStatusCid(1);
return attributeEntity;
}
private EventEntity updateEvent(EventEntity eventEntity) {
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis
());
eventEntity.setDateTime(sqlDate);
eventEntity.setFromId(1);
eventEntity.setTypeCid(1);
eventEntity.setFromClassId(1);
eventEntity.setStatusCid(1);
return eventEntity;
}
}
On 9/19/07, Gene Woo <ge...@gmail.com> wrote:
>
> In this morning, I tested my code(same as a SessionBean) with an injected
> EM(non-jta). Everything works fine.
>
> Seems that problem is due to managed transaction setting. But I don't why
> it comes...
>
> Gene
>
>
> On 9/19/07, Gene Woo <ge...@gmail.com> wrote:
> >
> > Hi,
> >
> > Here is the entity definition. A simplified test case passed in POJO
> > environment. But the error was happen in EJB container(WLS).
> >
> > BaseEntity
> >
> > @MappedSuperclass
> > public abstract class BaseEntity implements Serializable {
> >
> > private static final String CLASS_NAME = BaseEntity.class.getName();
> > private static Logger _logger = Logger.getLogger(CLASS_NAME);
> >
> > @Id
> > @Column(name = "id")
> > @TableGenerator(name = "primary_key_generator", table =
> > "GLOBAL_KEY", pkColumnName = "PK_NAME", valueColumnName = "SEQUENCE",
> > pkColumnValue = "TMS")
> > @GeneratedValue(strategy = GenerationType.TABLE, generator =
> > "primary_key_generator")
> > protected Integer _id;
> >
> > @Version
> > @Column(name = "update_version")
> > private Integer _version;
> >
> > @Column(name = "created_by")
> > private String _createdBy;
> >
> > @Column(name = "create_date")
> > private Timestamp _createDate;
> >
> > @Column(name = "updated_by")
> > private String _updatedBy;
> >
> > @Column(name = "update_date")
> > private Timestamp _updateDate;
> >
> > /**
> > * Default constructor - used ONLY for new entities that have not
> > been previously created
> > */
> > protected BaseEntity() {
> >
> > super();
> > }
> >
> > /**
> > * Constructor to create an entity for existing entities.
> > *
> > * @param id refers to an existing entity identifier
> > * @throws InvalidPrimaryKeyException if a null value is passed in
> > */
> > protected BaseEntity(Integer id) throws InvalidPrimaryKeyException {
> >
> > if(id == null) {
> > throw new InvalidPrimaryKeyException(
> > UtilServiceLocator.getInvalidPrimaryKeyExceptionContent(
> > CLASS_NAME, "BaseEntity",
> > ErrorDefinitionPkConstants.INVALID_PRIMARY_KEY));
> > }
> >
> > this._id = id;
> > }
> >
> > /**
> > * @return returns the primaryKey
> > */
> > public Integer getId() {
> >
> > return _id;
> > }
> >
> > /**
> > * @return created_by
> > */
> > public String getCreatedBy() {
> >
> > return this._createdBy;
> >
> > }
> >
> > /**
> > * Set created_by
> > *
> > * @param createdBy
> > */
> > public void setCreatedBy(String createdBy) {
> >
> > this._createdBy = createdBy;
> > }
> >
> > /**
> > * @return create_date
> > */
> > public Timestamp getCreateDate() {
> >
> > return this._createDate;
> > }
> >
> > /**
> > * Set create_date
> > *
> > * @param createDate
> > */
> > public void setCreateDate(Timestamp createDate) {
> >
> > this._createDate = createDate;
> > }
> >
> > /**
> > * @return updated_by
> > */
> > public String getUpdatedBy() {
> >
> > return this._updatedBy;
> >
> > }
> >
> > /**
> > * Set updated_by
> > *
> > * @param updatedBy
> > */
> > public void setUpdatedBy(String updatedBy) {
> >
> > this._updatedBy = updatedBy;
> > }
> >
> > /**
> > * @return update_date
> > */
> > public Timestamp getUpdateDate() {
> >
> > return this._updateDate;
> > }
> >
> > /**
> > * Set update_date
> > *
> > * @param updateDate
> > */
> > public void setUpdateDate(Timestamp updateDate) {
> >
> > this._updateDate = updateDate;
> > }
> >
> > /**
> > * @see java.lang.Object#equals(java.lang.Object)
> > */
> > public boolean equals(Object obj) {
> >
> > boolean equals = false;
> > if(_id == null) {
> > equals = super.equals(obj);
> > } else {
> > if(this.getClass().isInstance(obj)) {
> > equals = _id.equals(((BaseEntity)obj)._id);
> > }
> > }
> > return equals;
> > }
> >
> > /**
> > * Returns a hash code value for the primary key of the bean.
> > *
> > * @see java.lang.Object#hashCode()
> > */
> > public int hashCode() {
> >
> > int hashcode = 0;
> > if(_id == null) {
> > hashcode = super.hashCode();
> > } else {
> > hashcode = _id.hashCode();
> > }
> > return hashcode;
> > }
> >
> > /**
> > * Set the create_date and created_by after an entity is persisted
> > *
> > * @param entity
> > */
> > @PrePersist
> > public void updateCreateAuditColumns() {
> >
> > setCreateDate(new Timestamp( System.currentTimeMillis()));
> > setCreatedBy("test"); // need to resolve this.
> > }
> >
> > /**
> > * Set the update_date and updated_by after an entity is updated
> > *
> > * @param entity The updating entity.
> > */
> > @PreUpdate
> > public void updateUpdateAuditColumns() {
> >
> > setUpdateDate(new Timestamp(System.currentTimeMillis()));
> > setUpdatedBy("test");
> > }
> > }
> >
> >
> > Event Entity
> >
> > @Entity
> > @Table(name = "event")
> > @NamedQueries( {
> > @NamedQuery(name = "EventEntity.findByOwner", query = "SELECT i FROM
> > EventEntity i WHERE i._statusCid = 1140 "
> > + "AND _fromClassId =: fromClassID AND _fromId =: fromId"),
> > @NamedQuery(name = "EventEntity.findAllByOwner", query = "SELECT i
> > FROM EventEntity i WHERE _fromClassId =: fromClassID AND _fromId =:
> > fromId")})
> > public class EventEntity extends BaseEntity {
> >
> > @Column(name = "from_class_id")
> > private Integer _fromClassId;
> >
> > @Column(name = "type_cid")
> > private Integer _typeCid;
> >
> > @Column(name = "from_id")
> > private Integer _fromId;
> >
> > @Column(name = "status_cid")
> > private Integer _statusCid;
> >
> > @Column(name = "date_time")
> > private Date _dateTime;
> >
> > /**
> > * Get all the entries in the event table where status_cid = 1140
> > and from_class_id = ? and from_id = ?
> > *
> > * @param em
> > * @param fromId
> > * @param fromClassId
> > * @return - A collection of <code>EventEntity</code>'s
> > */
> > public static Collection<EventEntity> findByOwner(EntityManager em,
> > int typeCid, int fromId, int fromClassId) {
> >
> > Query query = em.createNamedQuery("EventEntity.findByOwner");
> > query.setParameter(1, fromId);
> > query.setParameter(2, fromClassId);
> > Collection<EventEntity> eventEntities = query.getResultList();
> >
> > return eventEntities;
> > }
> >
> > /**
> > * Get all the entries in the event table where from_class_id = ?
> > and from_id = ?, with no qualifier on the
> > * status_cid column
> > *
> > * @param em
> > * @param fromId
> > * @param fromClassId
> > * @return - A collection of <code>EventEntity</code>'s
> > */
> > public static Collection<EventEntity> findAllByOwner(EntityManager
> > em, int typeCid, int fromId, int fromClassId) {
> >
> > Query query = em.createNamedQuery("EventEntity.findAllByOwner");
> > query.setParameter(1, fromId);
> > query.setParameter(2, fromClassId);
> > Collection<EventEntity> eventEntities = query.getResultList();
> >
> > return eventEntities;
> > }
> >
> > public Integer getFromClassId() {
> >
> > return _fromClassId;
> > }
> >
> > public void setFromClassId(Integer classId) {
> >
> > _fromClassId = classId;
> > }
> >
> > public Integer getTypeCid() {
> >
> > return _typeCid;
> > }
> >
> > public void setTypeCid(Integer cid) {
> >
> > _typeCid = cid;
> > }
> >
> > public Integer getFromId() {
> >
> > return _fromId;
> > }
> >
> > public void setFromId(Integer id) {
> >
> > _fromId = id;
> > }
> >
> > public Integer getStatusCid() {
> >
> > return _statusCid;
> > }
> >
> > public void setStatusCid(Integer cid) {
> >
> > _statusCid = cid;
> > }
> >
> > public Date getDateTime() {
> >
> > return _dateTime;
> > }
> >
> > public void setDateTime(Date time) {
> >
> > _dateTime = time;
> > }
> >
> > }
> >
> > On 9/18/07, Patrick Linskey <plinskey@gmail.com > wrote:
> > >
> > > Can you post the definitions for both classes in the hierarchy please?
> > >
> > > -Patrick
> > >
> > > On 9/18/07, Gene Woo < genewoo@gmail.com> wrote:
> > > > Hi,
> > > >
> > > > Absolutely not. Because I only exposed this private field to a
> > > getting
> > > > method. So it's no possible to modify this value from outside of the
> > > class.
> > > >
> > > > BTW, this field is declared in Super class. Only these two entities
> > > met the
> > > > problem I described. The rest of them do not have such issue.
> > > >
> > > > Also, the error always comes with a optimistic lock error. But only
> > > one
> > > > Session Bean is working on these entities.
> > > >
> > > > Thanks,
> > > > Gene.
> > > >
> > > >
> > > > On 9/18/07, Patrick Linskey < plinskey@gmail.com> wrote:
> > > > >
> > > > > > So far, my understanding on setting of the version field is a
> > > qualified
> > > > > > field(Integer, Long or DateType) with annotation @Version. Is
> > > this the
> > > > > one
> > > > > > you mentioned as manually setting?
> > > > >
> > > > > There is (presumably) some field in your object that is marked as
> > > > > @Version. Are you assigning a value to that field?
> > > > >
> > > > > -Patrick
> > > > >
> > > > > On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> > > > > > Hi,
> > > > > >
> > > > > > I have no idea about that "manually setting the version field in
> > > your
> > > > > > application".
> > > > > >
> > > > > > So far, my understanding on setting of the version field is a
> > > qualified
> > > > > > field(Integer, Long or DateType) with annotation @Version. Is
> > > this the
> > > > > one
> > > > > > you mentioned as manually setting?
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > Gene.
> > > > > >
> > > > > > On 9/18/07, Patrick Linskey < plinskey@gmail.com> wrote:
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > Are you manually setting the version field in your
> > > application?
> > > > > > >
> > > > > > > -Patrick
> > > > > > >
> > > > > > > On 9/17/07, Gene Woo < genewoo@gmail.com> wrote:
> > > > > > > > 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: @
> > > > > > > > Version@Column(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
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Patrick Linskey
> > > > > > > 202 669 5907
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Best Regards,
> > > > > >
> > > > > > Gene Woo
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Patrick Linskey
> > > > > 202 669 5907
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Best Regards,
> > > >
> > > > Gene Woo
> > > >
> > >
> > >
> > > --
> > > Patrick Linskey
> > > 202 669 5907
> > >
> >
> >
> >
> > --
> > Best Regards,
> >
> > Gene Woo
>
>
>
>
> --
> Best Regards,
>
> Gene Woo
--
Best Regards,
Gene Woo
Re: Does anyone meet the conflict values in version column?
Posted by Gene Woo <ge...@gmail.com>.
In this morning, I tested my code(same as a SessionBean) with an injected
EM(non-jta). Everything works fine.
Seems that problem is due to managed transaction setting. But I don't why it
comes...
Gene
On 9/19/07, Gene Woo <ge...@gmail.com> wrote:
>
> Hi,
>
> Here is the entity definition. A simplified test case passed in POJO
> environment. But the error was happen in EJB container(WLS).
>
> BaseEntity
>
> @MappedSuperclass
> public abstract class BaseEntity implements Serializable {
>
> private static final String CLASS_NAME = BaseEntity.class.getName();
> private static Logger _logger = Logger.getLogger(CLASS_NAME);
>
> @Id
> @Column(name = "id")
> @TableGenerator(name = "primary_key_generator", table = "GLOBAL_KEY",
> pkColumnName = "PK_NAME", valueColumnName = "SEQUENCE", pkColumnValue =
> "TMS")
> @GeneratedValue(strategy = GenerationType.TABLE, generator =
> "primary_key_generator")
> protected Integer _id;
>
> @Version
> @Column(name = "update_version")
> private Integer _version;
>
> @Column(name = "created_by")
> private String _createdBy;
>
> @Column(name = "create_date")
> private Timestamp _createDate;
>
> @Column(name = "updated_by")
> private String _updatedBy;
>
> @Column(name = "update_date")
> private Timestamp _updateDate;
>
> /**
> * Default constructor - used ONLY for new entities that have not been
> previously created
> */
> protected BaseEntity() {
>
> super();
> }
>
> /**
> * Constructor to create an entity for existing entities.
> *
> * @param id refers to an existing entity identifier
> * @throws InvalidPrimaryKeyException if a null value is passed in
> */
> protected BaseEntity(Integer id) throws InvalidPrimaryKeyException {
>
> if(id == null) {
> throw new InvalidPrimaryKeyException(
> UtilServiceLocator.getInvalidPrimaryKeyExceptionContent(
> CLASS_NAME, "BaseEntity",
> ErrorDefinitionPkConstants.INVALID_PRIMARY_KEY));
> }
>
> this._id = id;
> }
>
> /**
> * @return returns the primaryKey
> */
> public Integer getId() {
>
> return _id;
> }
>
> /**
> * @return created_by
> */
> public String getCreatedBy() {
>
> return this._createdBy;
>
> }
>
> /**
> * Set created_by
> *
> * @param createdBy
> */
> public void setCreatedBy(String createdBy) {
>
> this._createdBy = createdBy;
> }
>
> /**
> * @return create_date
> */
> public Timestamp getCreateDate() {
>
> return this._createDate;
> }
>
> /**
> * Set create_date
> *
> * @param createDate
> */
> public void setCreateDate(Timestamp createDate) {
>
> this._createDate = createDate;
> }
>
> /**
> * @return updated_by
> */
> public String getUpdatedBy() {
>
> return this._updatedBy;
>
> }
>
> /**
> * Set updated_by
> *
> * @param updatedBy
> */
> public void setUpdatedBy(String updatedBy) {
>
> this._updatedBy = updatedBy;
> }
>
> /**
> * @return update_date
> */
> public Timestamp getUpdateDate() {
>
> return this._updateDate;
> }
>
> /**
> * Set update_date
> *
> * @param updateDate
> */
> public void setUpdateDate(Timestamp updateDate) {
>
> this._updateDate = updateDate;
> }
>
> /**
> * @see java.lang.Object#equals(java.lang.Object)
> */
> public boolean equals(Object obj) {
>
> boolean equals = false;
> if(_id == null) {
> equals = super.equals(obj);
> } else {
> if(this.getClass().isInstance(obj)) {
> equals = _id.equals(((BaseEntity)obj)._id);
> }
> }
> return equals;
> }
>
> /**
> * Returns a hash code value for the primary key of the bean.
> *
> * @see java.lang.Object#hashCode()
> */
> public int hashCode() {
>
> int hashcode = 0;
> if(_id == null) {
> hashcode = super.hashCode();
> } else {
> hashcode = _id.hashCode();
> }
> return hashcode;
> }
>
> /**
> * Set the create_date and created_by after an entity is persisted
> *
> * @param entity
> */
> @PrePersist
> public void updateCreateAuditColumns() {
>
> setCreateDate(new Timestamp( System.currentTimeMillis()));
> setCreatedBy("test"); // need to resolve this.
> }
>
> /**
> * Set the update_date and updated_by after an entity is updated
> *
> * @param entity The updating entity.
> */
> @PreUpdate
> public void updateUpdateAuditColumns() {
>
> setUpdateDate(new Timestamp(System.currentTimeMillis()));
> setUpdatedBy("test");
> }
> }
>
>
> Event Entity
>
> @Entity
> @Table(name = "event")
> @NamedQueries( {
> @NamedQuery(name = "EventEntity.findByOwner", query = "SELECT i FROM
> EventEntity i WHERE i._statusCid = 1140 "
> + "AND _fromClassId =: fromClassID AND _fromId =: fromId"),
> @NamedQuery(name = "EventEntity.findAllByOwner", query = "SELECT i
> FROM EventEntity i WHERE _fromClassId =: fromClassID AND _fromId =:
> fromId")})
> public class EventEntity extends BaseEntity {
>
> @Column(name = "from_class_id")
> private Integer _fromClassId;
>
> @Column(name = "type_cid")
> private Integer _typeCid;
>
> @Column(name = "from_id")
> private Integer _fromId;
>
> @Column(name = "status_cid")
> private Integer _statusCid;
>
> @Column(name = "date_time")
> private Date _dateTime;
>
> /**
> * Get all the entries in the event table where status_cid = 1140 and
> from_class_id = ? and from_id = ?
> *
> * @param em
> * @param fromId
> * @param fromClassId
> * @return - A collection of <code>EventEntity</code>'s
> */
> public static Collection<EventEntity> findByOwner(EntityManager em,
> int typeCid, int fromId, int fromClassId) {
>
> Query query = em.createNamedQuery("EventEntity.findByOwner");
> query.setParameter(1, fromId);
> query.setParameter(2, fromClassId);
> Collection<EventEntity> eventEntities = query.getResultList();
>
> return eventEntities;
> }
>
> /**
> * Get all the entries in the event table where from_class_id = ? and
> from_id = ?, with no qualifier on the
> * status_cid column
> *
> * @param em
> * @param fromId
> * @param fromClassId
> * @return - A collection of <code>EventEntity</code>'s
> */
> public static Collection<EventEntity> findAllByOwner(EntityManager em,
> int typeCid, int fromId, int fromClassId) {
>
> Query query = em.createNamedQuery("EventEntity.findAllByOwner");
> query.setParameter(1, fromId);
> query.setParameter(2, fromClassId);
> Collection<EventEntity> eventEntities = query.getResultList();
>
> return eventEntities;
> }
>
> public Integer getFromClassId() {
>
> return _fromClassId;
> }
>
> public void setFromClassId(Integer classId) {
>
> _fromClassId = classId;
> }
>
> public Integer getTypeCid() {
>
> return _typeCid;
> }
>
> public void setTypeCid(Integer cid) {
>
> _typeCid = cid;
> }
>
> public Integer getFromId() {
>
> return _fromId;
> }
>
> public void setFromId(Integer id) {
>
> _fromId = id;
> }
>
> public Integer getStatusCid() {
>
> return _statusCid;
> }
>
> public void setStatusCid(Integer cid) {
>
> _statusCid = cid;
> }
>
> public Date getDateTime() {
>
> return _dateTime;
> }
>
> public void setDateTime(Date time) {
>
> _dateTime = time;
> }
>
> }
>
> On 9/18/07, Patrick Linskey <pl...@gmail.com> wrote:
> >
> > Can you post the definitions for both classes in the hierarchy please?
> >
> > -Patrick
> >
> > On 9/18/07, Gene Woo <ge...@gmail.com> wrote:
> > > Hi,
> > >
> > > Absolutely not. Because I only exposed this private field to a getting
> >
> > > method. So it's no possible to modify this value from outside of the
> > class.
> > >
> > > BTW, this field is declared in Super class. Only these two entities
> > met the
> > > problem I described. The rest of them do not have such issue.
> > >
> > > Also, the error always comes with a optimistic lock error. But only
> > one
> > > Session Bean is working on these entities.
> > >
> > > Thanks,
> > > Gene.
> > >
> > >
> > > On 9/18/07, Patrick Linskey < plinskey@gmail.com> wrote:
> > > >
> > > > > So far, my understanding on setting of the version field is a
> > qualified
> > > > > field(Integer, Long or DateType) with annotation @Version. Is this
> > the
> > > > one
> > > > > you mentioned as manually setting?
> > > >
> > > > There is (presumably) some field in your object that is marked as
> > > > @Version. Are you assigning a value to that field?
> > > >
> > > > -Patrick
> > > >
> > > > On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> > > > > Hi,
> > > > >
> > > > > I have no idea about that "manually setting the version field in
> > your
> > > > > application".
> > > > >
> > > > > So far, my understanding on setting of the version field is a
> > qualified
> > > > > field(Integer, Long or DateType) with annotation @Version. Is this
> > the
> > > > one
> > > > > you mentioned as manually setting?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Gene.
> > > > >
> > > > > On 9/18/07, Patrick Linskey < plinskey@gmail.com> wrote:
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > Are you manually setting the version field in your application?
> > > > > >
> > > > > > -Patrick
> > > > > >
> > > > > > On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> > > > > > > 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: @
> > > > > > > Version@Column(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
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Patrick Linskey
> > > > > > 202 669 5907
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Best Regards,
> > > > >
> > > > > Gene Woo
> > > > >
> > > >
> > > >
> > > > --
> > > > Patrick Linskey
> > > > 202 669 5907
> > > >
> > >
> > >
> > >
> > > --
> > > Best Regards,
> > >
> > > Gene Woo
> > >
> >
> >
> > --
> > Patrick Linskey
> > 202 669 5907
> >
>
>
>
> --
> Best Regards,
>
> Gene Woo
--
Best Regards,
Gene Woo
Re: Does anyone meet the conflict values in version column?
Posted by Gene Woo <ge...@gmail.com>.
Hi,
Here is the entity definition. A simplified test case passed in POJO
environment. But the error was happen in EJB container(WLS).
BaseEntity
@MappedSuperclass
public abstract class BaseEntity implements Serializable {
private static final String CLASS_NAME = BaseEntity.class.getName();
private static Logger _logger = Logger.getLogger(CLASS_NAME);
@Id
@Column(name = "id")
@TableGenerator(name = "primary_key_generator", table = "GLOBAL_KEY",
pkColumnName = "PK_NAME", valueColumnName = "SEQUENCE", pkColumnValue =
"TMS")
@GeneratedValue(strategy = GenerationType.TABLE, generator =
"primary_key_generator")
protected Integer _id;
@Version
@Column(name = "update_version")
private Integer _version;
@Column(name = "created_by")
private String _createdBy;
@Column(name = "create_date")
private Timestamp _createDate;
@Column(name = "updated_by")
private String _updatedBy;
@Column(name = "update_date")
private Timestamp _updateDate;
/**
* Default constructor - used ONLY for new entities that have not been
previously created
*/
protected BaseEntity() {
super();
}
/**
* Constructor to create an entity for existing entities.
*
* @param id refers to an existing entity identifier
* @throws InvalidPrimaryKeyException if a null value is passed in
*/
protected BaseEntity(Integer id) throws InvalidPrimaryKeyException {
if(id == null) {
throw new InvalidPrimaryKeyException(
UtilServiceLocator.getInvalidPrimaryKeyExceptionContent(
CLASS_NAME, "BaseEntity",
ErrorDefinitionPkConstants.INVALID_PRIMARY_KEY));
}
this._id = id;
}
/**
* @return returns the primaryKey
*/
public Integer getId() {
return _id;
}
/**
* @return created_by
*/
public String getCreatedBy() {
return this._createdBy;
}
/**
* Set created_by
*
* @param createdBy
*/
public void setCreatedBy(String createdBy) {
this._createdBy = createdBy;
}
/**
* @return create_date
*/
public Timestamp getCreateDate() {
return this._createDate;
}
/**
* Set create_date
*
* @param createDate
*/
public void setCreateDate(Timestamp createDate) {
this._createDate = createDate;
}
/**
* @return updated_by
*/
public String getUpdatedBy() {
return this._updatedBy;
}
/**
* Set updated_by
*
* @param updatedBy
*/
public void setUpdatedBy(String updatedBy) {
this._updatedBy = updatedBy;
}
/**
* @return update_date
*/
public Timestamp getUpdateDate() {
return this._updateDate;
}
/**
* Set update_date
*
* @param updateDate
*/
public void setUpdateDate(Timestamp updateDate) {
this._updateDate = updateDate;
}
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object obj) {
boolean equals = false;
if(_id == null) {
equals = super.equals(obj);
} else {
if(this.getClass().isInstance(obj)) {
equals = _id.equals(((BaseEntity)obj)._id);
}
}
return equals;
}
/**
* Returns a hash code value for the primary key of the bean.
*
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
int hashcode = 0;
if(_id == null) {
hashcode = super.hashCode();
} else {
hashcode = _id.hashCode();
}
return hashcode;
}
/**
* Set the create_date and created_by after an entity is persisted
*
* @param entity
*/
@PrePersist
public void updateCreateAuditColumns() {
setCreateDate(new Timestamp(System.currentTimeMillis()));
setCreatedBy("test"); // need to resolve this.
}
/**
* Set the update_date and updated_by after an entity is updated
*
* @param entity The updating entity.
*/
@PreUpdate
public void updateUpdateAuditColumns() {
setUpdateDate(new Timestamp(System.currentTimeMillis()));
setUpdatedBy("test");
}
}
Event Entity
@Entity
@Table(name = "event")
@NamedQueries( {
@NamedQuery(name = "EventEntity.findByOwner", query = "SELECT i FROM
EventEntity i WHERE i._statusCid = 1140 "
+ "AND _fromClassId =: fromClassID AND _fromId =: fromId"),
@NamedQuery(name = "EventEntity.findAllByOwner", query = "SELECT i FROM
EventEntity i WHERE _fromClassId =: fromClassID AND _fromId =: fromId")})
public class EventEntity extends BaseEntity {
@Column(name = "from_class_id")
private Integer _fromClassId;
@Column(name = "type_cid")
private Integer _typeCid;
@Column(name = "from_id")
private Integer _fromId;
@Column(name = "status_cid")
private Integer _statusCid;
@Column(name = "date_time")
private Date _dateTime;
/**
* Get all the entries in the event table where status_cid = 1140 and
from_class_id = ? and from_id = ?
*
* @param em
* @param fromId
* @param fromClassId
* @return - A collection of <code>EventEntity</code>'s
*/
public static Collection<EventEntity> findByOwner(EntityManager em, int
typeCid, int fromId, int fromClassId) {
Query query = em.createNamedQuery("EventEntity.findByOwner");
query.setParameter(1, fromId);
query.setParameter(2, fromClassId);
Collection<EventEntity> eventEntities = query.getResultList();
return eventEntities;
}
/**
* Get all the entries in the event table where from_class_id = ? and
from_id = ?, with no qualifier on the
* status_cid column
*
* @param em
* @param fromId
* @param fromClassId
* @return - A collection of <code>EventEntity</code>'s
*/
public static Collection<EventEntity> findAllByOwner(EntityManager em,
int typeCid, int fromId, int fromClassId) {
Query query = em.createNamedQuery("EventEntity.findAllByOwner");
query.setParameter(1, fromId);
query.setParameter(2, fromClassId);
Collection<EventEntity> eventEntities = query.getResultList();
return eventEntities;
}
public Integer getFromClassId() {
return _fromClassId;
}
public void setFromClassId(Integer classId) {
_fromClassId = classId;
}
public Integer getTypeCid() {
return _typeCid;
}
public void setTypeCid(Integer cid) {
_typeCid = cid;
}
public Integer getFromId() {
return _fromId;
}
public void setFromId(Integer id) {
_fromId = id;
}
public Integer getStatusCid() {
return _statusCid;
}
public void setStatusCid(Integer cid) {
_statusCid = cid;
}
public Date getDateTime() {
return _dateTime;
}
public void setDateTime(Date time) {
_dateTime = time;
}
}
On 9/18/07, Patrick Linskey <pl...@gmail.com> wrote:
>
> Can you post the definitions for both classes in the hierarchy please?
>
> -Patrick
>
> On 9/18/07, Gene Woo <ge...@gmail.com> wrote:
> > Hi,
> >
> > Absolutely not. Because I only exposed this private field to a getting
> > method. So it's no possible to modify this value from outside of the
> class.
> >
> > BTW, this field is declared in Super class. Only these two entities met
> the
> > problem I described. The rest of them do not have such issue.
> >
> > Also, the error always comes with a optimistic lock error. But only one
> > Session Bean is working on these entities.
> >
> > Thanks,
> > Gene.
> >
> >
> > On 9/18/07, Patrick Linskey <pl...@gmail.com> wrote:
> > >
> > > > So far, my understanding on setting of the version field is a
> qualified
> > > > field(Integer, Long or DateType) with annotation @Version. Is this
> the
> > > one
> > > > you mentioned as manually setting?
> > >
> > > There is (presumably) some field in your object that is marked as
> > > @Version. Are you assigning a value to that field?
> > >
> > > -Patrick
> > >
> > > On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> > > > Hi,
> > > >
> > > > I have no idea about that "manually setting the version field in
> your
> > > > application".
> > > >
> > > > So far, my understanding on setting of the version field is a
> qualified
> > > > field(Integer, Long or DateType) with annotation @Version. Is this
> the
> > > one
> > > > you mentioned as manually setting?
> > > >
> > > > Thanks,
> > > >
> > > > Gene.
> > > >
> > > > On 9/18/07, Patrick Linskey <pl...@gmail.com> wrote:
> > > > >
> > > > > Hi,
> > > > >
> > > > > Are you manually setting the version field in your application?
> > > > >
> > > > > -Patrick
> > > > >
> > > > > On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> > > > > > 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: @
> > > > > > Version@Column(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
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Patrick Linskey
> > > > > 202 669 5907
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Best Regards,
> > > >
> > > > Gene Woo
> > > >
> > >
> > >
> > > --
> > > Patrick Linskey
> > > 202 669 5907
> > >
> >
> >
> >
> > --
> > Best Regards,
> >
> > Gene Woo
> >
>
>
> --
> Patrick Linskey
> 202 669 5907
>
--
Best Regards,
Gene Woo
Re: Does anyone meet the conflict values in version column?
Posted by Patrick Linskey <pl...@gmail.com>.
Can you post the definitions for both classes in the hierarchy please?
-Patrick
On 9/18/07, Gene Woo <ge...@gmail.com> wrote:
> Hi,
>
> Absolutely not. Because I only exposed this private field to a getting
> method. So it's no possible to modify this value from outside of the class.
>
> BTW, this field is declared in Super class. Only these two entities met the
> problem I described. The rest of them do not have such issue.
>
> Also, the error always comes with a optimistic lock error. But only one
> Session Bean is working on these entities.
>
> Thanks,
> Gene.
>
>
> On 9/18/07, Patrick Linskey <pl...@gmail.com> wrote:
> >
> > > So far, my understanding on setting of the version field is a qualified
> > > field(Integer, Long or DateType) with annotation @Version. Is this the
> > one
> > > you mentioned as manually setting?
> >
> > There is (presumably) some field in your object that is marked as
> > @Version. Are you assigning a value to that field?
> >
> > -Patrick
> >
> > On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> > > Hi,
> > >
> > > I have no idea about that "manually setting the version field in your
> > > application".
> > >
> > > So far, my understanding on setting of the version field is a qualified
> > > field(Integer, Long or DateType) with annotation @Version. Is this the
> > one
> > > you mentioned as manually setting?
> > >
> > > Thanks,
> > >
> > > Gene.
> > >
> > > On 9/18/07, Patrick Linskey <pl...@gmail.com> wrote:
> > > >
> > > > Hi,
> > > >
> > > > Are you manually setting the version field in your application?
> > > >
> > > > -Patrick
> > > >
> > > > On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> > > > > 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: @
> > > > > Version@Column(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
> > > > >
> > > >
> > > >
> > > > --
> > > > Patrick Linskey
> > > > 202 669 5907
> > > >
> > >
> > >
> > >
> > > --
> > > Best Regards,
> > >
> > > Gene Woo
> > >
> >
> >
> > --
> > Patrick Linskey
> > 202 669 5907
> >
>
>
>
> --
> Best Regards,
>
> Gene Woo
>
--
Patrick Linskey
202 669 5907
Re: Does anyone meet the conflict values in version column?
Posted by Gene Woo <ge...@gmail.com>.
Hi,
Absolutely not. Because I only exposed this private field to a getting
method. So it's no possible to modify this value from outside of the class.
BTW, this field is declared in Super class. Only these two entities met the
problem I described. The rest of them do not have such issue.
Also, the error always comes with a optimistic lock error. But only one
Session Bean is working on these entities.
Thanks,
Gene.
On 9/18/07, Patrick Linskey <pl...@gmail.com> wrote:
>
> > So far, my understanding on setting of the version field is a qualified
> > field(Integer, Long or DateType) with annotation @Version. Is this the
> one
> > you mentioned as manually setting?
>
> There is (presumably) some field in your object that is marked as
> @Version. Are you assigning a value to that field?
>
> -Patrick
>
> On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> > Hi,
> >
> > I have no idea about that "manually setting the version field in your
> > application".
> >
> > So far, my understanding on setting of the version field is a qualified
> > field(Integer, Long or DateType) with annotation @Version. Is this the
> one
> > you mentioned as manually setting?
> >
> > Thanks,
> >
> > Gene.
> >
> > On 9/18/07, Patrick Linskey <pl...@gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > Are you manually setting the version field in your application?
> > >
> > > -Patrick
> > >
> > > On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> > > > 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: @
> > > > Version@Column(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
> > > >
> > >
> > >
> > > --
> > > Patrick Linskey
> > > 202 669 5907
> > >
> >
> >
> >
> > --
> > Best Regards,
> >
> > Gene Woo
> >
>
>
> --
> Patrick Linskey
> 202 669 5907
>
--
Best Regards,
Gene Woo
Re: Does anyone meet the conflict values in version column?
Posted by Patrick Linskey <pl...@gmail.com>.
> So far, my understanding on setting of the version field is a qualified
> field(Integer, Long or DateType) with annotation @Version. Is this the one
> you mentioned as manually setting?
There is (presumably) some field in your object that is marked as
@Version. Are you assigning a value to that field?
-Patrick
On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> Hi,
>
> I have no idea about that "manually setting the version field in your
> application".
>
> So far, my understanding on setting of the version field is a qualified
> field(Integer, Long or DateType) with annotation @Version. Is this the one
> you mentioned as manually setting?
>
> Thanks,
>
> Gene.
>
> On 9/18/07, Patrick Linskey <pl...@gmail.com> wrote:
> >
> > Hi,
> >
> > Are you manually setting the version field in your application?
> >
> > -Patrick
> >
> > On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> > > 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: @
> > > Version@Column(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
> > >
> >
> >
> > --
> > Patrick Linskey
> > 202 669 5907
> >
>
>
>
> --
> Best Regards,
>
> Gene Woo
>
--
Patrick Linskey
202 669 5907
Re: Does anyone meet the conflict values in version column?
Posted by Gene Woo <ge...@gmail.com>.
Hi,
I have no idea about that "manually setting the version field in your
application".
So far, my understanding on setting of the version field is a qualified
field(Integer, Long or DateType) with annotation @Version. Is this the one
you mentioned as manually setting?
Thanks,
Gene.
On 9/18/07, Patrick Linskey <pl...@gmail.com> wrote:
>
> Hi,
>
> Are you manually setting the version field in your application?
>
> -Patrick
>
> On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> > 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: @
> > Version@Column(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
> >
>
>
> --
> Patrick Linskey
> 202 669 5907
>
--
Best Regards,
Gene Woo
Re: Does anyone meet the conflict values in version column?
Posted by Patrick Linskey <pl...@gmail.com>.
Hi,
Are you manually setting the version field in your application?
-Patrick
On 9/17/07, Gene Woo <ge...@gmail.com> wrote:
> 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: @
> Version@Column(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
>
--
Patrick Linskey
202 669 5907