类org.hibernate.engine.jdbc.env.spi.NameQualifierSupport源码实例Demo

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

private Format buildFormat(
		NameQualifierSupport nameQualifierSupport,
		String catalogSeparator,
		boolean catalogAtEnd) {
	switch ( nameQualifierSupport ) {
		case NONE: {
			return NoQualifierSupportFormat.INSTANCE;
		}
		case CATALOG: {
			return catalogAtEnd
					? new NameCatalogFormat( catalogSeparator )
					: new CatalogNameFormat( catalogSeparator );
		}
		case SCHEMA: {
			return SchemaNameFormat.INSTANCE;
		}
		default: {
			return catalogAtEnd
					? new SchemaNameCatalogFormat( catalogSeparator )
					: new CatalogSchemaNameFormat( catalogSeparator );
		}
	}
}
 
源代码2 项目: lams   文件: JdbcEnvironmentImpl.java
private NameQualifierSupport determineNameQualifierSupport(DatabaseMetaData databaseMetaData) throws SQLException {
	final boolean supportsCatalogs = databaseMetaData.supportsCatalogsInTableDefinitions();
	final boolean supportsSchemas = databaseMetaData.supportsSchemasInTableDefinitions();

	if ( supportsCatalogs && supportsSchemas ) {
		return NameQualifierSupport.BOTH;
	}
	else if ( supportsCatalogs ) {
		return NameQualifierSupport.CATALOG;
	}
	else if ( supportsSchemas ) {
		return NameQualifierSupport.SCHEMA;
	}
	else {
		return NameQualifierSupport.NONE;
	}
}
 
源代码3 项目: lams   文件: NormalizingIdentifierHelperImpl.java
public NormalizingIdentifierHelperImpl(
		JdbcEnvironment jdbcEnvironment,
		NameQualifierSupport nameQualifierSupport,
		boolean globallyQuoteIdentifiers,
		boolean globallyQuoteIdentifiersSkipColumnDefinitions,
		boolean autoQuoteKeywords,
		Set<String> reservedWords,
		IdentifierCaseStrategy unquotedCaseStrategy,
		IdentifierCaseStrategy quotedCaseStrategy) {
	this.jdbcEnvironment = jdbcEnvironment;
	this.nameQualifierSupport = nameQualifierSupport;
	this.globallyQuoteIdentifiers = globallyQuoteIdentifiers;
	this.globallyQuoteIdentifiersSkipColumnDefinitions = globallyQuoteIdentifiersSkipColumnDefinitions;
	this.autoQuoteKeywords = autoQuoteKeywords;
	if ( reservedWords != null ) {
		this.reservedWords.addAll( reservedWords );
	}
	this.unquotedCaseStrategy = unquotedCaseStrategy == null ? IdentifierCaseStrategy.UPPER : unquotedCaseStrategy;
	this.quotedCaseStrategy = quotedCaseStrategy == null ? IdentifierCaseStrategy.MIXED : quotedCaseStrategy;
}
 
public QualifiedObjectNameFormatterStandardImpl(
		NameQualifierSupport nameQualifierSupport,
		DatabaseMetaData databaseMetaData) throws SQLException {
	this(
			nameQualifierSupport,
			databaseMetaData.getCatalogSeparator(),
			!databaseMetaData.isCatalogAtStart()
	);
}
 
源代码5 项目: hibernate-reactive   文件: TestingRegistryRule.java
@Override @SuppressWarnings("unchecked")
public <R extends Service> R getService(Class<R> serviceRole) {
    if ( serviceRole == VertxInstance.class ) {
        return (R) vertxService;
    }
    else if ( serviceRole == JdbcEnvironment.class ) {
        return (R) new JdbcEnvironment() {
            @Override
            public Dialect getDialect() {
                return new MySQL8Dialect();
            }

            @Override
            public ExtractedDatabaseMetaData getExtractedDatabaseMetaData() {
                return null;
            }

            @Override
            public Identifier getCurrentCatalog() {
                return null;
            }

            @Override
            public Identifier getCurrentSchema() {
                return null;
            }

            @Override
            public QualifiedObjectNameFormatter getQualifiedObjectNameFormatter() {
                return null;
            }

            @Override
            public IdentifierHelper getIdentifierHelper() {
                return null;
            }

            @Override
            public NameQualifierSupport getNameQualifierSupport() {
                return null;
            }

            @Override
            public SqlExceptionHelper getSqlExceptionHelper() {
                return null;
            }

            @Override
            public LobCreatorBuilder getLobCreatorBuilder() {
                return null;
            }

            @Override
            public TypeInfo getTypeInfoForJdbcCode(int jdbcTypeCode) {
                return null;
            }
        };
    }
    else {
        throw new IllegalArgumentException( "This is a mock service - need to explicitly handle any service we might need during testing" );
    }
}
 
public QualifiedObjectNameFormatterStandardImpl(
		NameQualifierSupport nameQualifierSupport,
		String catalogSeparator,
		boolean catalogAtEnd) {
	this.format = buildFormat( nameQualifierSupport, catalogSeparator, catalogAtEnd );
}
 
public QualifiedObjectNameFormatterStandardImpl(NameQualifierSupport nameQualifierSupport) {
	// most dbs simply do <catalog>.<schema>.<name>
	this( nameQualifierSupport, ".", false );
}
 
源代码8 项目: lams   文件: JdbcEnvironmentImpl.java
/**
 * Constructor form used when the JDBC {@link java.sql.DatabaseMetaData} is not available.
 *
 * @param serviceRegistry The service registry
 * @param dialect The resolved dialect.
 */
public JdbcEnvironmentImpl(ServiceRegistryImplementor serviceRegistry, Dialect dialect) {
	this.dialect = dialect;

	final ConfigurationService cfgService = serviceRegistry.getService( ConfigurationService.class );

	NameQualifierSupport nameQualifierSupport = dialect.getNameQualifierSupport();
	if ( nameQualifierSupport == null ) {
		// assume both catalogs and schemas are supported
		nameQualifierSupport = NameQualifierSupport.BOTH;
	}
	this.nameQualifierSupport = nameQualifierSupport;

	this.sqlExceptionHelper = buildSqlExceptionHelper( dialect, logWarnings( cfgService, dialect ) );

	final IdentifierHelperBuilder identifierHelperBuilder = IdentifierHelperBuilder.from( this );
	identifierHelperBuilder.setGloballyQuoteIdentifiers( globalQuoting( cfgService ) );
	identifierHelperBuilder.setSkipGlobalQuotingForColumnDefinitions( globalQuotingSkippedForColumnDefinitions( cfgService ) );
	identifierHelperBuilder.setAutoQuoteKeywords( autoKeywordQuoting( cfgService ) );
	identifierHelperBuilder.setNameQualifierSupport( nameQualifierSupport );

	IdentifierHelper identifierHelper = null;
	ExtractedDatabaseMetaDataImpl.Builder dbMetaDataBuilder = new ExtractedDatabaseMetaDataImpl.Builder( this );
	try {
		identifierHelper = dialect.buildIdentifierHelper( identifierHelperBuilder, null );
		dbMetaDataBuilder.setSupportsNamedParameters( dialect.supportsNamedParameters( null ) );
	}
	catch (SQLException sqle) {
		// should never ever happen
		log.debug( "There was a problem accessing DatabaseMetaData in building the JdbcEnvironment", sqle );
	}
	if ( identifierHelper == null ) {
		identifierHelper = identifierHelperBuilder.build();
	}
	this.identifierHelper = identifierHelper;

	this.extractedMetaDataSupport = dbMetaDataBuilder.build();

	this.currentCatalog = identifierHelper.toIdentifier(
			cfgService.getSetting( AvailableSettings.DEFAULT_CATALOG, StandardConverters.STRING )
	);
	this.currentSchema = Identifier.toIdentifier(
			cfgService.getSetting( AvailableSettings.DEFAULT_SCHEMA, StandardConverters.STRING )
	);

	this.qualifiedObjectNameFormatter = new QualifiedObjectNameFormatterStandardImpl( nameQualifierSupport );

	this.lobCreatorBuilder = LobCreatorBuilderImpl.makeLobCreatorBuilder();
}
 
源代码9 项目: lams   文件: JdbcEnvironmentImpl.java
/**
 * Constructor form used from testing
 *
 * @param dialect The dialect
 */
public JdbcEnvironmentImpl(DatabaseMetaData databaseMetaData, Dialect dialect) throws SQLException {
	this.dialect = dialect;

	this.sqlExceptionHelper = buildSqlExceptionHelper( dialect, false );

	this.extractedMetaDataSupport = new ExtractedDatabaseMetaDataImpl.Builder( this )
			.apply( databaseMetaData )
			.setSupportsNamedParameters( databaseMetaData.supportsNamedParameters() )
			.build();

	NameQualifierSupport nameQualifierSupport = dialect.getNameQualifierSupport();
	if ( nameQualifierSupport == null ) {
		nameQualifierSupport = determineNameQualifierSupport( databaseMetaData );
	}
	this.nameQualifierSupport = nameQualifierSupport;

	final IdentifierHelperBuilder identifierHelperBuilder = IdentifierHelperBuilder.from( this );
	identifierHelperBuilder.setNameQualifierSupport( nameQualifierSupport );
	IdentifierHelper identifierHelper = null;
	try {
		identifierHelper = dialect.buildIdentifierHelper( identifierHelperBuilder, databaseMetaData );
	}
	catch (SQLException sqle) {
		// should never ever happen
		log.debug( "There was a problem accessing DatabaseMetaData in building the JdbcEnvironment", sqle );
	}
	if ( identifierHelper == null ) {
		identifierHelper = identifierHelperBuilder.build();
	}
	this.identifierHelper = identifierHelper;

	this.currentCatalog = null;
	this.currentSchema = null;

	this.qualifiedObjectNameFormatter = new QualifiedObjectNameFormatterStandardImpl(
			nameQualifierSupport,
			databaseMetaData
	);

	this.lobCreatorBuilder = LobCreatorBuilderImpl.makeLobCreatorBuilder();
}
 
源代码10 项目: lams   文件: JdbcEnvironmentImpl.java
/**
 * The main constructor form.  Builds a JdbcEnvironment using the available DatabaseMetaData
 *
 * @param serviceRegistry The service registry
 * @param dialect The resolved dialect
 * @param databaseMetaData The available DatabaseMetaData
 *
 * @throws SQLException
 */
public JdbcEnvironmentImpl(
		ServiceRegistryImplementor serviceRegistry,
		Dialect dialect,
		DatabaseMetaData databaseMetaData) throws SQLException {
	this.dialect = dialect;

	final ConfigurationService cfgService = serviceRegistry.getService( ConfigurationService.class );

	this.sqlExceptionHelper = buildSqlExceptionHelper( dialect, logWarnings( cfgService, dialect ) );

	this.extractedMetaDataSupport = new ExtractedDatabaseMetaDataImpl.Builder( this )
			.apply( databaseMetaData )
			.setConnectionSchemaName( determineCurrentSchemaName( databaseMetaData, serviceRegistry, dialect ) )
			.setSupportsNamedParameters(dialect.supportsNamedParameters(databaseMetaData))
			.build();

	NameQualifierSupport nameQualifierSupport = dialect.getNameQualifierSupport();
	if ( nameQualifierSupport == null ) {
		nameQualifierSupport = determineNameQualifierSupport( databaseMetaData );
	}
	this.nameQualifierSupport = nameQualifierSupport;

	final IdentifierHelperBuilder identifierHelperBuilder = IdentifierHelperBuilder.from( this );
	identifierHelperBuilder.setGloballyQuoteIdentifiers( globalQuoting( cfgService ) );
	identifierHelperBuilder.setSkipGlobalQuotingForColumnDefinitions( globalQuotingSkippedForColumnDefinitions( cfgService ) );
	identifierHelperBuilder.setAutoQuoteKeywords( autoKeywordQuoting( cfgService ) );
	identifierHelperBuilder.setNameQualifierSupport( nameQualifierSupport );
	IdentifierHelper identifierHelper = null;
	try {
		identifierHelper = dialect.buildIdentifierHelper( identifierHelperBuilder, databaseMetaData );
	}
	catch (SQLException sqle) {
		// should never ever happen
		log.debug( "There was a problem accessing DatabaseMetaData in building the JdbcEnvironment", sqle );
	}
	if ( identifierHelper == null ) {
		identifierHelper = identifierHelperBuilder.build();
	}
	this.identifierHelper = identifierHelper;

	// and that current-catalog and current-schema happen after it
	this.currentCatalog = identifierHelper.toIdentifier( extractedMetaDataSupport.getConnectionCatalogName() );
	this.currentSchema = identifierHelper.toIdentifier( extractedMetaDataSupport.getConnectionSchemaName() );

	this.qualifiedObjectNameFormatter = new QualifiedObjectNameFormatterStandardImpl(
			nameQualifierSupport,
			databaseMetaData
	);

	this.typeInfoSet.addAll( TypeInfo.extractTypeInfo( databaseMetaData ) );

	this.lobCreatorBuilder = LobCreatorBuilderImpl.makeLobCreatorBuilder(
			cfgService.getSettings(),
			databaseMetaData.getConnection()
	);
}
 
源代码11 项目: lams   文件: JdbcEnvironmentImpl.java
@Override
public NameQualifierSupport getNameQualifierSupport() {
	return nameQualifierSupport;
}
 
源代码12 项目: lams   文件: HSQLDialect.java
@Override
public NameQualifierSupport getNameQualifierSupport() {
	return NameQualifierSupport.SCHEMA;
}
 
源代码13 项目: lams   文件: AbstractHANADialect.java
@Override
public NameQualifierSupport getNameQualifierSupport() {
	return NameQualifierSupport.SCHEMA;
}
 
源代码14 项目: keycloak   文件: DelegatingDialect.java
@Override
public NameQualifierSupport getNameQualifierSupport() {
    return getInstance().getNameQualifierSupport();
}
 
源代码15 项目: lams   文件: Dialect.java
/**
 * By default interpret this based on DatabaseMetaData.
 *
 * @return
 */
public NameQualifierSupport getNameQualifierSupport() {
	return null;
}
 
 类所在包
 类方法
 同包方法