in google-cloud-spanner-hibernate-dialect/src/main/java/com/google/cloud/spanner/hibernate/SpannerTableExporter.java [124:143]
static void addStatementAfterDdlBatch(Metadata metadata, String[] statements) {
// Find the RunBatchDdl auxiliary object which can run statements after the DDL batch.
Optional<RunBatchDdl> runBatchDdl =
metadata.getDatabase().getAuxiliaryDatabaseObjects().stream()
.filter(RunBatchDdl.class::isInstance)
.map(obj -> (RunBatchDdl) obj)
.findFirst();
if (runBatchDdl.isPresent()) {
for (String statement : statements) {
runBatchDdl.get().addAfterDdlStatement(statement);
}
} else {
throw new IllegalStateException(
"Failed to generate statement to execute after DDL batch. "
+ "The Spanner dialect did not create auxiliary database objects correctly. "
+ "Please post a question to "
+ "https://github.com/GoogleCloudPlatform/google-cloud-spanner-hibernate/issues");
}
}