[hibernate-issues] [Hibernate-JIRA] Resolved: (HHH-2068) TransientObjectException : object references an unsaved transient instance ...
Gail Badner (JIRA)
noreply at atlassian.com
Mon Aug 23 19:52:41 EDT 2010
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2068?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gail Badner resolved HHH-2068.
------------------------------
Assignee: Gail Badner
Resolution: Rejected
According to your mapping, this is expected behavior.
Please use the user forum for help (https://forum.hibernate.org/).
> TransientObjectException : object references an unsaved transient instance ...
> ------------------------------------------------------------------------------
>
> Key: HHH-2068
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2068
> Project: Hibernate Core
> Issue Type: Bug
> Components: core
> Affects Versions: 3.2.0.cr4
> Environment: Windows, Hibernate 3.2.0.cr4, Oracle 9.2.0.1
> Reporter: Ales PROCHAZKA
> Assignee: Gail Badner
> Attachments: XTest.zip
>
>
> I found this problem:
> If I create new object 'o1', which associate another persistent object 'o2' and by calling saveOrUpdate Hibernate throws PropertyValueException,
> then when I corresct this property and try call saveOrUpdate in another session (in which 'o2' was not saved or loaded) Hibernate throws TransientObjectException.
> Please see attached code :-)
> This is a log :
> Hibernate: select hibernate_sequence.nextval from dual
> Hibernate: insert into T_TEST (A_POKUS, A_POKUS_LONG, CID, PK) values (?, ?, 3, ?)
> Hibernate: insert into T_TEST3 (PK) values (?)
> Hibernate: select hibernate_sequence.nextval from dual
> Hibernate: select hibernate_sequence.nextval from dual
> org.hibernate.PropertyValueException: not-null property references a null or transient value: persistent.Test5.pokus
> at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)
> at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:284)
> at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:180)
> at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:98)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
> at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:509)
> at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:501)
> at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:497)
> at test.MainTest.test(MainTest.java:71)
> at test.MainTest.main(MainTest.java:42)
> org.hibernate.TransientObjectException: persistent.Test3
> at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
> at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
> at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:221)
> at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:476)
> at org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:2900)
> at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:474)
> at org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:197)
> at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:120)
> at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:195)
> at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
> at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
> at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:993)
> at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:340)
> at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
> at test.MainTest.test(MainTest.java:87)
> at test.MainTest.main(MainTest.java:42)
> Thanx
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list