Hibernate has no support for \"delete-orphan\" cascading of one-to-one or many-to-one relationships. I recently discovered this, and it\'s giving me a serious headache. I have
Write database on update trigger on child table. If parent key is null delete the record from child
It appears to be a draw back in the framework they MAY address, hopefully soon
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2608
That ticket was opened in 2007 and the latest post complaining about the problem was as recent as a month ago.
What I am doing is putting a property on my object called isMarkedForDeletion. And if that returns true, i have my dao or my service do an explicit delete. It is definintely NOT as good as delete-orphan would be, but it works well enough in the spring+hibernate framework.
I will keep an eye on this post as this is a VERY important question.
Heureka, fixed in Hibernate 4.27 https://hibernate.atlassian.net/browse/HHH-6484 (not tested)
The workaround described here https://forum.hibernate.org/viewtopic.php?p=2379216 worked for me. It uses @OneToMany association with a single element on the "many" side to implement a @OneToOne association and solve the remove-orphans problem.