]
David M. Lee commented on HHH-4547:
-----------------------------------
And if you're really interested, I've posted the code to github.
IdGenerator + CompositeId = HibernateException: identifier of an
instance of _ was altered
------------------------------------------------------------------------------------------
Key: HHH-4547
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-4547
Project: Hibernate Core
Issue Type: Bug
Components: core
Affects Versions: 3.3.2
Environment: Hibernate 3.3.2, seen on HSQLDB and PostgreSQL
Reporter: David M. Lee
Priority: Minor
Attachments: composite-key-bug.tar.gz
I have some legacy code that I'm working with that uses composite-id for some
entities, and has an IdGenerator for the id's.
The generator generates the id's correctly, but they do not get set on the entities
when they are saved. For the base class, this results in the following exception:
org.hibernate.HibernateException: identifier of an instance of
org.hibernate.example.compositeid.EntityWithCompositeId was altered from
CompositeId{id1=1, id2=1} to CompositeId{id1=null, id2=null}
at
org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:81)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:187)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:143)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
Strangely, on subclasses we do not get this exception. I've attached an example,
which has a couple of unit tests that demonstrate the problem.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: