use of org.hibernate.resource.transaction.spi.DdlTransactionIsolator in project hibernate-orm by hibernate.
the class AbstractSchemaMigrator method doMigration.
@Override
public void doMigration(Metadata metadata, ExecutionOptions options, TargetDescriptor targetDescriptor) {
if (!targetDescriptor.getTargetTypes().isEmpty()) {
final JdbcContext jdbcContext = tool.resolveJdbcContext(options.getConfigurationValues());
final DdlTransactionIsolator ddlTransactionIsolator = tool.getDdlTransactionIsolator(jdbcContext);
try {
final DatabaseInformation databaseInformation = Helper.buildDatabaseInformation(tool.getServiceRegistry(), ddlTransactionIsolator, metadata.getDatabase().getDefaultNamespace().getName());
final GenerationTarget[] targets = tool.buildGenerationTargets(targetDescriptor, ddlTransactionIsolator, options.getConfigurationValues());
try {
for (GenerationTarget target : targets) {
target.prepare();
}
try {
performMigration(metadata, databaseInformation, options, jdbcContext.getDialect(), targets);
} finally {
for (GenerationTarget target : targets) {
try {
target.release();
} catch (Exception e) {
log.debugf("Problem releasing GenerationTarget [%s] : %s", target, e.getMessage());
}
}
}
} finally {
try {
databaseInformation.cleanup();
} catch (Exception e) {
log.debug("Problem releasing DatabaseInformation : " + e.getMessage());
}
}
} finally {
ddlTransactionIsolator.release();
}
}
}
use of org.hibernate.resource.transaction.spi.DdlTransactionIsolator in project hibernate-orm by hibernate.
the class AbstractSchemaValidator method doValidation.
@Override
public void doValidation(Metadata metadata, ExecutionOptions options) {
final JdbcContext jdbcContext = tool.resolveJdbcContext(options.getConfigurationValues());
final DdlTransactionIsolator isolator = tool.getDdlTransactionIsolator(jdbcContext);
final DatabaseInformation databaseInformation = Helper.buildDatabaseInformation(tool.getServiceRegistry(), isolator, metadata.getDatabase().getDefaultNamespace().getName());
try {
performValidation(metadata, databaseInformation, options, jdbcContext.getDialect());
} finally {
try {
databaseInformation.cleanup();
} catch (Exception e) {
log.debug("Problem releasing DatabaseInformation : " + e.getMessage());
}
isolator.release();
}
}
Aggregations