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

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

源代码1 项目: lams   文件: JdbcEnvironmentImpl.java
private String determineCurrentSchemaName(
		DatabaseMetaData databaseMetaData,
		ServiceRegistry serviceRegistry,
		Dialect dialect) throws SQLException {
	final SchemaNameResolver schemaNameResolver;

	final Object setting = serviceRegistry.getService( ConfigurationService.class ).getSettings().get( SCHEMA_NAME_RESOLVER );
	if ( setting == null ) {
		schemaNameResolver = dialect.getSchemaNameResolver();
	}
	else {
		schemaNameResolver = serviceRegistry.getService( StrategySelector.class ).resolveDefaultableStrategy(
				SchemaNameResolver.class,
				setting,
				dialect.getSchemaNameResolver()
		);
	}

	try {
		return schemaNameResolver.resolveSchemaName( databaseMetaData.getConnection(), dialect );
	}
	catch (Exception e) {
		log.debug( "Unable to resolve connection default schema", e );
		return null;
	}
}
 
源代码2 项目: lams   文件: DefaultSchemaNameResolver.java
private SchemaNameResolver determineAppropriateResolverDelegate(Connection connection) {
	// unfortunately Connection#getSchema is only available in Java 1.7 and above
	// and Hibernate still baselines on 1.6.  So for now, use reflection and
	// leverage the Connection#getSchema method if it is available.
	try {
		final Class<? extends Connection> jdbcConnectionClass = connection.getClass();
		final Method getSchemaMethod = jdbcConnectionClass.getMethod( "getSchema" );
		if ( getSchemaMethod != null && getSchemaMethod.getReturnType().equals( String.class ) ) {
			try {
				// If the JDBC driver does not implement the Java 7 spec, but the JRE is Java 7
				// then the getSchemaMethod is not null but the call to getSchema() throws an java.lang.AbstractMethodError
				connection.getSchema();
				return new SchemaNameResolverJava17Delegate();
			}
			catch (java.lang.AbstractMethodError e) {
				log.debugf( "Unable to use Java 1.7 Connection#getSchema" );
				return SchemaNameResolverFallbackDelegate.INSTANCE;
			}
		}
		else {
			log.debugf( "Unable to use Java 1.7 Connection#getSchema" );
			return SchemaNameResolverFallbackDelegate.INSTANCE;
		}
	}
	catch (Exception ignore) {
		log.debugf(
				"Unable to use Java 1.7 Connection#getSchema : An error occurred trying to resolve the connection default schema resolver: "
						+ ignore.getMessage() );
		return SchemaNameResolverFallbackDelegate.INSTANCE;
	}
}
 
源代码3 项目: lams   文件: DefaultSchemaNameResolver.java
@Override
public String resolveSchemaName(Connection connection, Dialect dialect) throws SQLException {
	// NOTE: delegate should not be cached in DefaultSchemaNameResolver because,
	//       in the case of multiple data sources, there may be a data source that
	//       requires a different delegate. See HHH-12392.
	final SchemaNameResolver delegate = determineAppropriateResolverDelegate( connection );
	return delegate.resolveSchemaName( connection, dialect );
}
 
@Override
public SchemaNameResolver getSchemaNameResolver() {
  throw new UnsupportedOperationException(
      "No schema name resolver supported by " + getClass().getName());
}
 
源代码5 项目: keycloak   文件: DelegatingDialect.java
@Override
public SchemaNameResolver getSchemaNameResolver() {
    return getInstance().getSchemaNameResolver();
}
 
源代码6 项目: lams   文件: Dialect.java
/**
 * Get the strategy for determining the schema name of a Connection
 *
 * @return The schema name resolver strategy
 */
public SchemaNameResolver getSchemaNameResolver() {
	return DefaultSchemaNameResolver.INSTANCE;
}
 
 类所在包
 类方法
 同包方法