类org.hibernate.engine.jdbc.dialect.spi.DialectResolver源码实例Demo

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

@Override
public void contribute(MetadataBuilder metadataBuilder, StandardServiceRegistry serviceRegistry) {
    DialectResolver dialectResolver = serviceRegistry.getService(DialectResolver.class);

    if (!(dialectResolver instanceof DialectResolverSet)) {
        logger.warnf("DialectResolver '%s' is not an instance of DialectResolverSet, not registering SQLiteDialect",
                dialectResolver);
        return;
    }

    ((DialectResolverSet) dialectResolver).addResolver(resolver);
}
 
源代码2 项目: lams   文件: DialectResolverInitiator.java
@Override
public DialectResolver initiateService(Map configurationValues, ServiceRegistryImplementor registry) {
	final DialectResolverSet resolver = new DialectResolverSet();

	applyCustomerResolvers( resolver, registry, configurationValues );
	resolver.addResolver(StandardDialectResolver.INSTANCE );

	return resolver;
}
 
源代码3 项目: pnc   文件: DefaultSequenceHandlerRepository.java
@Override
public Long getNextID(final String sequenceName) {

    ReturningWork<Long> maxReturningWork = new ReturningWork<Long>() {
        @Override
        public Long execute(Connection connection) throws SQLException {
            DialectResolver dialectResolver = new StandardDialectResolver();
            Dialect dialect = dialectResolver.resolveDialect(getResolutionInfo(connection));
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            try {
                preparedStatement = connection.prepareStatement(dialect.getSequenceNextValString(sequenceName));
                resultSet = preparedStatement.executeQuery();
                resultSet.next();
                return resultSet.getLong(1);
            } catch (SQLException e) {
                throw e;
            } finally {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (resultSet != null) {
                    resultSet.close();
                }
            }

        }
    };

    Session session = (Session) entityManager.getDelegate();
    SessionFactory sessionFactory = session.getSessionFactory();

    Long maxRecord = sessionFactory.getCurrentSession().doReturningWork(maxReturningWork);
    return maxRecord;
}
 
源代码4 项目: pnc   文件: DefaultSequenceHandlerRepository.java
@Override
public void createSequence(final String sequenceName) {

    if (sequenceExists(sequenceName)) {
        return;
    }
    Work work = new Work() {
        @Override
        public void execute(Connection connection) throws SQLException {
            DialectResolver dialectResolver = new StandardDialectResolver();
            Dialect dialect = dialectResolver.resolveDialect(getResolutionInfo(connection));
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            try {
                preparedStatement = connection
                        .prepareStatement(dialect.getCreateSequenceStrings(sequenceName, 1, 1)[0]);
                preparedStatement.execute();
            } catch (SQLException e) {
                throw e;
            } finally {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (resultSet != null) {
                    resultSet.close();
                }
            }

        }
    };

    Session session = (Session) entityManager.getDelegate();
    SessionFactory sessionFactory = session.getSessionFactory();
    sessionFactory.getCurrentSession().doWork(work);
}
 
源代码5 项目: pnc   文件: DefaultSequenceHandlerRepository.java
@Override
public boolean sequenceExists(final String sequenceName) {
    ReturningWork<Boolean> work = new ReturningWork<Boolean>() {
        @Override
        public Boolean execute(Connection connection) throws SQLException {
            DialectResolver dialectResolver = new StandardDialectResolver();
            Dialect dialect = dialectResolver.resolveDialect(getResolutionInfo(connection));
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            try {
                preparedStatement = connection.prepareStatement(dialect.getQuerySequencesString());
                resultSet = preparedStatement.executeQuery();
                while (resultSet.next()) {
                    if (sequenceName.equals(resultSet.getString(1))) {
                        return true;
                    }
                }
            } catch (SQLException e) {
                throw e;
            } finally {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (resultSet != null) {
                    resultSet.close();
                }
            }
            return false;

        }
    };

    Session session = (Session) entityManager.getDelegate();
    SessionFactory sessionFactory = session.getSessionFactory();
    return sessionFactory.getCurrentSession().doReturningWork(work);
}
 
源代码6 项目: pnc   文件: DefaultSequenceHandlerRepository.java
@Override
public void dropSequence(final String sequenceName) {

    Work work = new Work() {
        @Override
        public void execute(Connection connection) throws SQLException {
            DialectResolver dialectResolver = new StandardDialectResolver();
            Dialect dialect = dialectResolver.resolveDialect(getResolutionInfo(connection));
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            try {
                preparedStatement = connection.prepareStatement(dialect.getDropSequenceStrings(sequenceName)[0]);
                preparedStatement.execute();
            } catch (SQLException e) {
                throw e;
            } finally {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (resultSet != null) {
                    resultSet.close();
                }
            }

        }
    };

    Session session = (Session) entityManager.getDelegate();
    SessionFactory sessionFactory = session.getSessionFactory();
    sessionFactory.getCurrentSession().doWork(work);
}
 
源代码7 项目: J2Cache   文件: J2CacheMessageLogger_$logger.java
public final void unableToExecuteResolver(final DialectResolver arg0, final String arg1) {
    super.log.logf(FQCN, (org.jboss.logging.Logger.Level.WARN), null, unableToExecuteResolver$str(), arg0, arg1);
}
 
源代码8 项目: J2Cache   文件: J2CacheMessageLogger_$logger.java
public final void unableToExecuteResolver(DialectResolver arg0, String arg1) {
    super.log.logf(FQCN, Logger.Level.WARN, (Throwable)null, this.unableToExecuteResolver$str(), arg0, arg1);
}
 
源代码9 项目: lams   文件: HibernateSchemaManagementTool.java
public JdbcContext resolveJdbcContext(Map configurationValues) {
	final JdbcContextBuilder jdbcContextBuilder = new JdbcContextBuilder( serviceRegistry );

	// see if a specific connection has been provided
	final Connection providedConnection = (Connection) configurationValues.get( HBM2DDL_CONNECTION );
	if ( providedConnection != null ) {
		jdbcContextBuilder.jdbcConnectionAccess = new JdbcConnectionAccessProvidedConnectionImpl( providedConnection );
	}

	// see if a specific Dialect override has been provided...
	final String explicitDbName = (String) configurationValues.get( AvailableSettings.HBM2DDL_DB_NAME );
	if ( StringHelper.isNotEmpty( explicitDbName ) ) {
		final String explicitDbMajor = (String) configurationValues.get( AvailableSettings.HBM2DDL_DB_MAJOR_VERSION );
		final String explicitDbMinor = (String) configurationValues.get( AvailableSettings.HBM2DDL_DB_MINOR_VERSION );

		final Dialect indicatedDialect = serviceRegistry.getService( DialectResolver.class ).resolveDialect(
				new DialectResolutionInfo() {
					@Override
					public String getDatabaseName() {
						return explicitDbName;
					}

					@Override
					public int getDatabaseMajorVersion() {
						return StringHelper.isEmpty( explicitDbMajor )
								? NO_VERSION
								: Integer.parseInt( explicitDbMajor );
					}

					@Override
					public int getDatabaseMinorVersion() {
						return StringHelper.isEmpty( explicitDbMinor )
								? NO_VERSION
								: Integer.parseInt( explicitDbMinor );
					}

					@Override
					public String getDriverName() {
						return null;
					}

					@Override
					public int getDriverMajorVersion() {
						return NO_VERSION;
					}

					@Override
					public int getDriverMinorVersion() {
						return NO_VERSION;
					}
				}
		);

		if ( indicatedDialect == null ) {
			log.debugf(
					"Unable to resolve indicated Dialect resolution info (%s, %s, %s)",
					explicitDbName,
					explicitDbMajor,
					explicitDbMinor
			);
		}
		else {
			jdbcContextBuilder.dialect = indicatedDialect;
		}
	}

	return jdbcContextBuilder.buildJdbcContext();
}
 
源代码10 项目: lams   文件: DialectFactoryImpl.java
@Override
public void injectServices(ServiceRegistryImplementor serviceRegistry) {
	this.strategySelector = serviceRegistry.getService( StrategySelector.class );
	this.dialectResolver = serviceRegistry.getService( DialectResolver.class );
}
 
源代码11 项目: lams   文件: DialectResolverInitiator.java
@Override
public Class<DialectResolver> getServiceInitiated() {
	return DialectResolver.class;
}
 
源代码12 项目: lams   文件: DialectResolverSet.java
public DialectResolverSet() {
	this( new ArrayList<DialectResolver>() );
}
 
源代码13 项目: lams   文件: DialectResolverSet.java
public DialectResolverSet(List<DialectResolver> resolvers) {
	this.resolvers = resolvers;
}
 
源代码14 项目: lams   文件: DialectResolverSet.java
public DialectResolverSet(DialectResolver... resolvers) {
	this( Arrays.asList( resolvers ) );
}
 
源代码15 项目: lams   文件: CoreMessageLogger.java
@LogMessage(level = WARN)
@Message(value = "Error executing resolver [%s] : %s", id = 316)
void unableToExecuteResolver(
		DialectResolver abstractDialectResolver,
		String message);
 
源代码16 项目: lams   文件: DialectFactoryImpl.java
/**
 * Intended only for use from testing.
 *
 * @param dialectResolver The DialectResolver to use
 */
public void setDialectResolver(DialectResolver dialectResolver) {
	this.dialectResolver = dialectResolver;
}
 
源代码17 项目: lams   文件: DialectResolverSet.java
/**
 * Add a resolver at the end of the underlying resolver list.  The resolver added by this method is at lower
 * priority than any other existing resolvers.
 *
 * @param resolver The resolver to add.
 */
public void addResolver(DialectResolver resolver) {
	resolvers.add( resolver );
}
 
源代码18 项目: lams   文件: DialectResolverSet.java
/**
 * Add a resolver at the beginning of the underlying resolver list.  The resolver added by this method is at higher
 * priority than any other existing resolvers.
 *
 * @param resolver The resolver to add.
 */
public void addResolverAtFirst(DialectResolver resolver) {
	resolvers.add( 0, resolver );
}
 
 类所在包
 类方法
 同包方法