类org.hibernate.mapping.Index源码实例Demo

下面列出了怎么用org.hibernate.mapping.Index的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: lams   文件: StandardIndexExporter.java
@Override
public String[] getSqlDropStrings(Index index, Metadata metadata) {
	if ( !dialect.dropConstraints() ) {
		return NO_COMMANDS;
	}

	final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment();
	final String tableName = jdbcEnvironment.getQualifiedObjectNameFormatter().format(
			index.getTable().getQualifiedTableName(),
			dialect
	);

	final String indexNameForCreation;
	if ( dialect.qualifyIndexName() ) {
		indexNameForCreation = StringHelper.qualify( tableName, index.getName() );
	}
	else {
		indexNameForCreation = index.getName();
	}

	return new String[] { "drop index " + indexNameForCreation };
}
 
private Set<String> getTableIndices(Table table) {
  Set<String> tableIndices = new HashSet<>();

  Iterator<Index> indexIterator = table.getIndexIterator();
  while (indexIterator.hasNext()) {
    tableIndices.add(indexIterator.next().getName());
  }

  Iterator<UniqueKey> keyIterator = table.getUniqueKeyIterator();
  while (keyIterator.hasNext()) {
    tableIndices.add(keyIterator.next().getName());
  }

  return tableIndices;
}
 
@Test
public void testDropTableStatement_withIndex() {
  Table table = new Table();
  table.setName("House");

  Index index = new Index();
  index.setName("address");
  table.addIndex(index);

  List<String> statements = spannerTableStatements.dropTable(table);
  assertThat(statements).containsExactly("drop index address", "drop table House");
}
 
源代码4 项目: lams   文件: AbstractSchemaMigrator.java
protected void applyIndexes(
		Table table,
		TableInformation tableInformation,
		Dialect dialect,
		Metadata metadata,
		Formatter formatter,
		ExecutionOptions options,
		GenerationTarget... targets) {
	final Exporter<Index> exporter = dialect.getIndexExporter();

	final Iterator<Index> indexItr = table.getIndexIterator();
	while ( indexItr.hasNext() ) {
		final Index index = indexItr.next();
		if ( !StringHelper.isEmpty( index.getName() ) ) {
			IndexInformation existingIndex = null;
			if ( tableInformation != null ) {
				existingIndex = findMatchingIndex( index, tableInformation );
			}
			if ( existingIndex == null ) {
				applySqlStrings(
						false,
						exporter.getSqlCreateStrings( index, metadata ),
						formatter,
						options,
						targets
				);
			}
		}
	}
}
 
/**
 * Create indexes for {@code @Index} annotations
 * @param queryEntity
 * @param context
 */
private void addUserIndexes(QueryEntity queryEntity, SchemaDefinitionContext context, String tableName) {
	Namespace namespace = context.getDatabase().getDefaultNamespace();
	Optional<Table> tableOptional = namespace.getTables().stream().filter( currentTable -> currentTable.getName().equals( tableName ) ).findFirst();
	if ( tableOptional.isPresent() ) {
		Table table = tableOptional.get();
		for ( Iterator<Index> indexIterator = table.getIndexIterator(); indexIterator.hasNext(); ) {
			Index index = indexIterator.next();
			appendIndex( queryEntity, index, context );
		}
	}
}
 
private void appendIndex(QueryEntity queryEntity, Index index, SchemaDefinitionContext context) {
	QueryIndex queryIndex = new QueryIndex();
	queryIndex.setName( index.getName() );
	queryIndex.setIndexType( QueryIndexType.SORTED );
	LinkedHashMap<String, Boolean> fields = new LinkedHashMap<>();
	for ( Iterator<Column> columnIterator = index.getColumnIterator(); columnIterator.hasNext(); ) {
		Column currentColumn = columnIterator.next();
		fields.put( currentColumn.getName(), true );
	}
	queryIndex.setFields( fields );

	Set<QueryIndex> indexes = new HashSet<>( queryEntity.getIndexes() );
	indexes.add( queryIndex );
	queryEntity.setIndexes( indexes );
}
 
@Override
public String getAlterTableToAddUniqueKeyCommand(UniqueKey uniqueKey, Metadata metadata) {
  return Index.buildSqlCreateIndexString(
      dialect, uniqueKey.getName(), uniqueKey.getTable(), uniqueKey.columnIterator(),
      uniqueKey.getColumnOrderMap(), true, metadata);
}
 
源代码8 项目: lams   文件: StandardIndexExporter.java
@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;
	final Iterator<Column> columnItr = index.getColumnIterator();
	final Map<Column, String> columnOrderMap = index.getColumnOrderMap();
	while ( columnItr.hasNext() ) {
		final Column column = columnItr.next();
		if ( first ) {
			first = false;
		}
		else {
			buf.append( ", " );
		}
		buf.append( ( column.getQuotedName( dialect ) ) );
		if ( columnOrderMap.containsKey( column ) ) {
			buf.append( " " ).append( columnOrderMap.get( column ) );
		}
	}
	buf.append( ")" );
	return new String[] { buf.toString() };
}
 
源代码9 项目: lams   文件: AbstractSchemaMigrator.java
private IndexInformation findMatchingIndex(Index index, TableInformation tableInformation) {
	return tableInformation.getIndex( Identifier.toIdentifier( index.getName() ) );
}
 
源代码10 项目: lams   文件: Teradata14Dialect.java
@Override
public Exporter<Index> getIndexExporter() {
	return TeraIndexExporter;
}
 
源代码11 项目: lams   文件: Teradata14Dialect.java
@Override
public String[] getSqlCreateStrings(Index index, Metadata metadata) {
	final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment();
	final String tableName = jdbcEnvironment.getQualifiedObjectNameFormatter().format(
			index.getTable().getQualifiedTableName(),
			jdbcEnvironment.getDialect()
	);

	final String indexNameForCreation;
	if ( getDialect().qualifyIndexName() ) {
		indexNameForCreation = jdbcEnvironment.getQualifiedObjectNameFormatter().format(
				new QualifiedNameImpl(
						index.getTable().getQualifiedTableName().getCatalogName(),
						index.getTable().getQualifiedTableName().getSchemaName(),
						jdbcEnvironment.getIdentifierHelper().toIdentifier( index.getName() )
				),
				jdbcEnvironment.getDialect()
		);
	}
	else {
		indexNameForCreation = index.getName();
	}

	StringBuilder colBuf = new StringBuilder("");
	boolean first = true;
	Iterator<Column> columnItr = index.getColumnIterator();
	while ( columnItr.hasNext() ) {
		final Column column = columnItr.next();
		if ( first ) {
			first = false;
		}
		else {
			colBuf.append( ", " );
		}
		colBuf.append( ( column.getQuotedName( jdbcEnvironment.getDialect() )) );
	}
	colBuf.append( ")" );

	final StringBuilder buf = new StringBuilder()
			.append( "create index " )
			.append( indexNameForCreation )
			.append(  "(" + colBuf  )
			.append( " on " )
			.append( tableName );

	return new String[] { buf.toString() };
}
 
源代码12 项目: lams   文件: Dialect.java
public Exporter<Index> getIndexExporter() {
	return indexExporter;
}
 
源代码13 项目: keycloak   文件: DelegatingDialect.java
@Override
public Exporter<Index> getIndexExporter() {
    return getInstance().getIndexExporter();
}
 
 类所在包
 同包方法