Duplicate
Details
Assignee
Former userFormer user(Deactivated)Reporter
Former userFormer user(Deactivated)Components
Fix versions
Affects versions
Priority
Major
Details
Details
Assignee
Former user
Former user(Deactivated)Reporter
Former user
Former user(Deactivated)Components
Fix versions
Affects versions
Priority
Created October 19, 2011 at 12:13 AM
Updated February 9, 2012 at 6:22 AM
Resolved January 21, 2012 at 2:01 AM
TransientObjectException thrown on dirty check of a many-to-one association during flush with CHECK_NULLABILITY set to false when the entity being dirty-checked:
has a "delayed-insert" ID generator (e.g., sequence, increment),
has been saved, but not flushed
This may also happen on an update.
I believe JDBCException should be thrown instead.
This is reproduced by testMergeEntityWithNonNullableTransientEntity() in:
MultiPathCircleCascadeTest for Oracle10gDialect and PostgreSQLDialect
(because these dialects use sequences for the native ID generator and the default for CHECK_NULLABILITY is false)
MultiPathCircleCascadeCheckNullibilityFalseTest for Oracle10gDialect and PostgreSQLDialect
(because these dialects use sequences for the native ID generator and CHECK_NULLABILITY is explicitly set to false)
MultiPathCircleCascadeDelayedInsertTest for all dialects
(because the test uses an "increment" generator and the default for CHECK_NULLABILITY is false)
MultiPathCircleCascadeCheckNullFalseDelayedInsertTest
(because the test uses an "increment" generator and CHECK_NULLABILITY is explicitly set to false)
The failure is masked in MultiPathCircleCascadeDelayedInsertTest and MultiPathCircleCascadeCheckNullFalseDelayedInsertTest because they incorrectly allow TransientObjectException as valid behavior.