Using orphanRemoval does not work correctly with the following case :
A -> oneToMany <-> B -> manyToOne -> C
With all cascading, removing one B from the set of A correctly triggers orphan removal of the associated B and C.
The problem is that DN tries to delete C before B and gets a foreign key constraint violation.
See test case here: http://www.graniteds.org/public/testorphan.rar