Hibernate version:
3.0.5 prod
Name and version of the database you are using:
Informix 9.x
The user must be able to insert, then update an object to a table where the PK is a char(2) (no, I did not design it). If the ID property is set to '5', the DB result ends up as a row w/ PK = '5 ', notice the space. Hibernate then cannot update changes to the same object it has inserted - see stack trace. The work around is to save, *retrieve*, and then let the user update. Is this expected behavior?
Full stack trace of any exception that occurs:
11:09:11,746 INFO [STDOUT] org.hibernate.HibernateException: identifier of an instance of gov.blm.ak.arims.generated.Gear altered from 5 to 5
at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:51)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:82)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:190)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:70)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)
at gov.blm.ak.hibernate.Hibernate3Util.commitTransaction(Hibernate3Util.java:128)
at gov.blm.ak.hibernate.HibernateTool.saveOrUpdate(HibernateTool.java:78)
at gov.blm.ak.hibernate.HibernateTool.update(HibernateTool.java:92)
at gov.blm.ak.hibernate.HibernateTool.update(HibernateTool.java:106)
at gov.blm.ak.arims.backing.crud.GearCrudBacker.update(Unknown Source)
|