After a bit of research, I found out that Hibernate does not do this automatically either. However, an exception is thrown if a child object is deleted and that object is in a list:

ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)

The following Hibernate FAQ entries relate to this scenario:


Hibernate throws: Flush during cascade is dangerous.

This almost always happens because you forgot to remove a deleted instance from an association with cascading save enabled. You should remove deleted objects from associations before flushing the session. Basically, the object you're trying to delete would be resaved to the database by it being in a collection hanging off another object. You need to remove it from other collections before deleting it.


When I delete an object that belongs to a cached collection, the collection cache is not invalidated!

You must remove the deleted object from all collections it belongs to.


I now see that there is good reason for not removing deleted items from collections automatically. So, ignore my implicit request to have this happen.

~ Daniel



On Feb 21, 2006, at 3:02 PM, Michael Bayer wrote:
currently its not removing deleted items from lists. if you had an object "A" that was installed within the lists of 20 other objects, would I maintain a backwards lookup table of all the lists that object is present in to find them when its marked as deleted ? i fear that may an excessive use of resources. feel free to add an enhancement ticket, maybe this could be an enableable option.

On Feb 21, 2006, at 2:46 PM, dmiller wrote:

Example:

>>> en = Entity(...) # SQLAlchemy entity class
>>> len(en.attrs)
2
>>> a = en.attrs[0]
>>> objectstore.delete(a)
>>> len(en.attrs) # should this return 1?
2
>>> objectstore.commit()
>>> len(en.attrs) # this should definitely return 1
2

It appears that AttributeManager is not removing deleted items from lists.



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to