Search in sources :

Example 1 with QualifiedNameImpl

use of org.hibernate.boot.model.relational.QualifiedNameImpl in project hibernate-orm by hibernate.

the class StandardIndexExporter method getSqlCreateStrings.

@Override
public String[] getSqlCreateStrings(Index index, Metadata metadata) {
    final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment();
    final String tableName = jdbcEnvironment.getQualifiedObjectNameFormatter().format(index.getTable().getQualifiedTableName(), dialect);
    final String indexNameForCreation;
    if (dialect.qualifyIndexName()) {
        indexNameForCreation = jdbcEnvironment.getQualifiedObjectNameFormatter().format(new QualifiedNameImpl(index.getTable().getQualifiedTableName().getCatalogName(), index.getTable().getQualifiedTableName().getSchemaName(), jdbcEnvironment.getIdentifierHelper().toIdentifier(index.getQuotedName(dialect))), jdbcEnvironment.getDialect());
    } else {
        indexNameForCreation = index.getName();
    }
    final StringBuilder buf = new StringBuilder().append("create index ").append(indexNameForCreation).append(" on ").append(tableName).append(" (");
    boolean first = true;
    Iterator<Column> columnItr = index.getColumnIterator();
    while (columnItr.hasNext()) {
        final Column column = columnItr.next();
        if (first) {
            first = false;
        } else {
            buf.append(", ");
        }
        buf.append((column.getQuotedName(dialect)));
    }
    buf.append(")");
    return new String[] { buf.toString() };
}
Also used : Column(org.hibernate.mapping.Column) QualifiedNameImpl(org.hibernate.boot.model.relational.QualifiedNameImpl) JdbcEnvironment(org.hibernate.engine.jdbc.env.spi.JdbcEnvironment)

Aggregations

QualifiedNameImpl (org.hibernate.boot.model.relational.QualifiedNameImpl)1 JdbcEnvironment (org.hibernate.engine.jdbc.env.spi.JdbcEnvironment)1 Column (org.hibernate.mapping.Column)1