Although you have asked for "on delete cascade" as DDL, my answer covers software level. EBean does not seem to generate DB level cascades. Instead, it handles the cascading operation in software. I think that is a good alternative.
See this from(avaje-ebeanorm-4.6.2.jar:com/avaje/ebeaninternal/server/persist/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();
...
You can see that if the request is a cascade, then first its children are deleted (probably this is somehow recursive).
In my postgre DB, the automatically generated foreign key constraints do not contain any cascades, but still the delete operations are cascaded.