[hibernate-issues] [Hibernate-JIRA] Created: (HHH-3795) Unexpected behaviour of saveOrUpdate() for associations with delete-orphan

Fabian Dankof (JIRA) noreply at atlassian.com
Tue Mar 3 11:18:38 EST 2009


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.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list