Refer to http://www.avaje.org/topic-157.html
...
I think @DeleteOrphans would usually be used with CascadeType.ALLBut of course it might also be used without another cascade action, e.g. in conjunction with REMOVE: when the parent is removed, remove all items in the association. Additionally, when an item is removed from the association remove the item too.
Support for this has been added to HEAD.
The annotation is @PrivateOwned.
The effect is that Ebean will listen for beans that have been removed from the List/Set/Map.
If the parent bean is saved, then any bean that was removed from the List/Set/Map will be deleted - the beans are effectively passed to the ebeanServer.delete() method.
This does not require the standard CascadeType.ALL etc.