Obwohl Sie nach "on delete cascade" als DDL gefragt haben, deckt meine Antwort die Softwareebene ab. EBean scheint keine DB-Level-Kaskaden zu erzeugen. Stattdessen behandelt es die Kaskadierung in Software. Ich denke, das ist eine gute Alternative.
Sehen Sie diese von (avaje-ebeanorm-4.6.2.jar: com/avaje/ebeaninternal/server/anhalten/DefaultPersister)
/**
* Delete the bean.
* <p>
* Note that preDelete fires before the deletion of children.
* </p>
*/
private void delete(PersistRequestBean<?> request) {
DeleteUnloadedForeignKeys unloadedForeignKeys = null;
if (request.isPersistCascade()) {
// delete children first ... register the
// bean to handle bi-directional cascading
request.registerDeleteBean();
deleteAssocMany(request);
request.unregisterDeleteBean();
...
Sie können sehen, dass, wenn die Anforderung eine Kaskade, dann werden zuerst seine Kinder gelöscht (wahrscheinlich ist das irgendwie rekursiv).
In meiner Postgre-DB enthalten die automatisch generierten Fremdschlüsseleinschränkungen keine Kaskaden, aber die Löschoperationen sind kaskadiert.