Unexpected behaviour of saveOrUpdate() for associations with delete-orphan
--------------------------------------------------------------------------
Key: HHH-3795
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3795
Project: Hibernate Core
Issue Type: Improvement
Environment: Hibernate 3.2.6.GA, PostgreSQL 8.3
Reporter: Fabian Dankof
Hello there,
I think saveOrUpdate() behaves somewhat unexpected for associations with delete-orphan
cascading style:
Prerequisite: Association is set to cascade="all,delete-orphan" and
nullable=true
1) Within a single session (i.e. a transient object):
* Load parent
* Delete child
* saveOrUpdate()
Result: Child is deleted from DB, a DELETE statement was issued
2) Across multiple session (i.e. a detached object):
* Have parent with valid ID, but empty list/set of children
* saveOrUpdate()
Result: Child is not deleted from DB, an UPDATE statement is issued which sets FK of child
to 'null'
3) like 2) but nullable is FALSE
Result: Nothing happens.
With merge() everything works as expected for detached and transient instances. I would
either expect saveOrUpdate() to
completely disregard DELETE statements OR behave similar to merge(). At least the
different results of case 1) and 2)
are pretty confusing.
Best regards,
Fabian
--
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....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira