I'm looking at Apache Cayenne as my ORM layer for a new application.
Part of my DB model will be defined in a fixed model which will be known at compile time.
However, another part of the model will be defined at runtime by certain limited user operations. So, these operations will have the effect of creating certain simple tables, adding and removing columns from these tables, deleting tables etc.
It does seem that Cayenne is well-suited to this, based on its generic persistent objects feature.
https://cayenne.apache.org/docs/3.1/cayenne-guide/persistent-objects-objectcontext.html
I'm looking for some examples of how I would introduce the user-defined DbEntitys into the Cayenne runtime, generate and run the CREATE / ALTER / DROP SQL, and then specify that certain generic persistent objects are backed by certain user-defined tables.