in google-cloud-spanner-hibernate-dialect/src/main/java/com/google/cloud/spanner/hibernate/BitReversedSequenceStyleGenerator.java [127:150]
public void registerExportables(Database database) {
super.registerExportables(database);
// Replace the init command for the table-backed sequence.
// Hibernate by default generates an 'insert into table_name values (?)' statement.
// That is not supported by Cloud Spanner, as Cloud Spanner requires the insert statement to
// include the column name(s) that are being used in the insert statement.
final Namespace namespace =
database.locateNamespace(qualifiedName.getCatalogName(), qualifiedName.getSchemaName());
Table table = namespace.locateTable(qualifiedName.getObjectName());
if (table != null) {
Dialect dialect = jdbcEnvironment.getDialect();
String valueColumnNameText = valueColumnNameIdentifier.render(dialect);
table.addInitCommand(
context ->
new ReplaceInitCommand(
"insert into "
+ context.format(table.getQualifiedTableName())
+ " ("
+ valueColumnNameText
+ ") values ( "
+ initialValue
+ " )"));
}
}