[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-6744) TransientObjectException thrown on dirty check during flush with CHECK_NULLABILITY set to false
Gail Badner (JIRA)
noreply at atlassian.com
Fri Jan 6 04:57:13 EST 2012
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-6744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44978#comment-44978 ]
Gail Badner commented on HHH-6744:
----------------------------------
After discussing this with Emmanuel, we agreed that it is appropriate for Hibernate to throw an exception if it is known that a non-nullable entity association is transient, rather than waiting for the insert to fail with JDBCException.
Emmanuel suggested that PropertyValueException might be a more appropriate exception than TransientObjectException in this case.
This issue will be fixed by HHH-5472 as this case will be detected by the save operation, rather than during flush.
> TransientObjectException thrown on dirty check during flush with CHECK_NULLABILITY set to false
> -----------------------------------------------------------------------------------------------
>
> Key: HHH-6744
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6744
> Project: Hibernate Core
> Issue Type: Bug
> Components: core
> Affects Versions: 4.0.0.CR4
> Reporter: Gail Badner
> Assignee: Gail Badner
> Fix For: 4.0.1
>
>
> 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.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list