public void registerExportables()

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
                        + " )"));
      }
    }