if hibernate.hbm2ddl.auto is set to update, auxiliary data base objects are never created:
<hibernate-mapping> <database-object> <create> create... </create> <drop>DROP ...</drop> </database-object> </hibernate-mapping>
The corresponding statements in Configuration.generateSchemaUpdateScriptList are missing. But they are available in generateSchemaCreationScript:
for ( AuxiliaryDatabaseObject auxiliaryDatabaseObject : auxiliaryDatabaseObjects ) { if ( auxiliaryDatabaseObject.appliesToDialect( dialect ) ) { script.add( auxiliaryDatabaseObject.sqlCreateString( dialect, mapping, defaultCatalog, defaultSchema ) ); }
}
The expectation would be either:
-
if the database is empty, the update script will execute them as well
-
first all auxiliary drop scripts are executed, than all auxiliary create scripts again (works well for non-persistent objects such as views, indices, triggers, etc.)
|