Java 类org.hibernate.engine.jdbc.connections.spi.ConnectionProvider 实例源码
项目:lams
文件:SchemaExport.java
public SchemaExport(ServiceRegistry serviceRegistry, Configuration configuration) {
this.connectionHelper = new SuppliedConnectionProviderConnectionHelper(
serviceRegistry.getService( ConnectionProvider.class )
);
this.sqlStatementLogger = serviceRegistry.getService( JdbcServices.class ).getSqlStatementLogger();
this.formatter = ( sqlStatementLogger.isFormat() ? FormatStyle.DDL : FormatStyle.NONE ).getFormatter();
this.sqlExceptionHelper = serviceRegistry.getService( JdbcServices.class ).getSqlExceptionHelper();
this.importFiles = ConfigurationHelper.getString(
AvailableSettings.HBM2DDL_IMPORT_FILES,
configuration.getProperties(),
DEFAULT_IMPORT_FILE
);
final Dialect dialect = serviceRegistry.getService( JdbcServices.class ).getDialect();
this.dropSQL = configuration.generateDropSchemaScript( dialect );
this.createSQL = configuration.generateSchemaCreationScript( dialect );
}
项目:lams
文件:SchemaExport.java
public SchemaExport(MetadataImplementor metadata) {
ServiceRegistry serviceRegistry = metadata.getServiceRegistry();
this.connectionHelper = new SuppliedConnectionProviderConnectionHelper(
serviceRegistry.getService( ConnectionProvider.class )
);
JdbcServices jdbcServices = serviceRegistry.getService( JdbcServices.class );
this.sqlStatementLogger = jdbcServices.getSqlStatementLogger();
this.formatter = ( sqlStatementLogger.isFormat() ? FormatStyle.DDL : FormatStyle.NONE ).getFormatter();
this.sqlExceptionHelper = jdbcServices.getSqlExceptionHelper();
this.importFiles = ConfigurationHelper.getString(
AvailableSettings.HBM2DDL_IMPORT_FILES,
serviceRegistry.getService( ConfigurationService.class ).getSettings(),
DEFAULT_IMPORT_FILE
);
final Dialect dialect = jdbcServices.getDialect();
this.dropSQL = metadata.getDatabase().generateDropSchemaScript( dialect );
this.createSQL = metadata.getDatabase().generateSchemaCreationScript( dialect );
}
项目:lams
文件:AbstractSessionImpl.java
@Override
public JdbcConnectionAccess getJdbcConnectionAccess() {
if ( jdbcConnectionAccess == null ) {
if ( MultiTenancyStrategy.NONE == factory.getSettings().getMultiTenancyStrategy() ) {
jdbcConnectionAccess = new NonContextualJdbcConnectionAccess(
getEventListenerManager(),
factory.getServiceRegistry().getService( ConnectionProvider.class )
);
}
else {
jdbcConnectionAccess = new ContextualJdbcConnectionAccess(
getEventListenerManager(),
factory.getServiceRegistry().getService( MultiTenantConnectionProvider.class )
);
}
}
return jdbcConnectionAccess;
}
项目:lams
文件:SessionFactoryImpl.java
private JdbcConnectionAccess buildLocalConnectionAccess() {
return new JdbcConnectionAccess() {
@Override
public Connection obtainConnection() throws SQLException {
return settings.getMultiTenancyStrategy() == MultiTenancyStrategy.NONE
? serviceRegistry.getService( ConnectionProvider.class ).getConnection()
: serviceRegistry.getService( MultiTenantConnectionProvider.class ).getAnyConnection();
}
@Override
public void releaseConnection(Connection connection) throws SQLException {
if ( settings.getMultiTenancyStrategy() == MultiTenancyStrategy.NONE ) {
serviceRegistry.getService( ConnectionProvider.class ).closeConnection( connection );
}
else {
serviceRegistry.getService( MultiTenantConnectionProvider.class ).releaseAnyConnection( connection );
}
}
@Override
public boolean supportsAggressiveRelease() {
return false;
}
};
}
项目:unitimes
文件:HibernateUtil.java
public static void closeHibernate() {
if (sSessionFactory!=null) {
if (sSessionFactory instanceof SessionFactoryImpl) {
ConnectionProvider cp = ((SessionFactoryImpl)sSessionFactory).getConnectionProvider();
if (cp instanceof DisposableConnectionProvider) {
try {
((DisposableConnectionProvider)cp).destroy();
} catch (Exception e) {
sLog.error("Failed to destroy connection provider: " + e.getMessage());
}
}
}
sSessionFactory.close();
sSessionFactory=null;
}
}
项目:spring4-understanding
文件:SessionFactoryUtils.java
/**
* Determine the DataSource of the given SessionFactory.
* @param sessionFactory the SessionFactory to check
* @return the DataSource, or {@code null} if none found
* @see ConnectionProvider
*/
public static DataSource getDataSource(SessionFactory sessionFactory) {
if (sessionFactory instanceof SessionFactoryImplementor) {
try {
ConnectionProvider cp = ((SessionFactoryImplementor) sessionFactory).getServiceRegistry().getService(
ConnectionProvider.class);
if (cp != null) {
return cp.unwrap(DataSource.class);
}
}
catch (UnknownServiceException ex) {
if (logger.isDebugEnabled()) {
logger.debug("No ConnectionProvider found - cannot determine DataSource for SessionFactory: " + ex);
}
}
}
return null;
}
项目:CredentialStorageService-dw-hibernate
文件:SessionFactoryFactory.java
public SessionFactory build(final RemoteCredentialHibernateBundle<?> bundle,
final Environment environment,
final PooledDataSourceFactory dbConfig,
final ManagedDataSource dataSource,
final List<Class<?>> entities) {
final ConnectionProvider provider = this.buildConnectionProvider(dataSource,
dbConfig.getProperties());
final SessionFactory factory = this.buildSessionFactory(bundle,
dbConfig,
provider,
dbConfig.getProperties(),
entities);
final SessionFactoryManager managedFactory = new SessionFactoryManager(factory, dataSource);
environment.lifecycle().manage(managedFactory);
return factory;
}
项目:Nomad
文件:DB.java
private static SessionFactory buildSessionFactory() {
try {
Configuration configuration = new Configuration();
Properties props = new Properties();
props.put("hibernate.current_session_context_class", "thread");
configuration.setProperties(props);
for (Class<?> clazz : entityClasses) {
configuration.addAnnotatedClass(clazz);
}
PluginHandler.get().getPlugin().addAnnotatedClass(configuration);
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.addService(ConnectionProvider.class, new NomadConnectionProvider()).build();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
} catch (Throwable ex) {
logger.error("Failed to build session factory.", ex);
throw new ExceptionInInitializerError(ex);
}
}
项目:gorm-hibernate5
文件:GrailsHibernateTemplate.java
public GrailsHibernateTemplate(SessionFactory sessionFactory) {
Assert.notNull(sessionFactory, "Property 'sessionFactory' is required");
this.sessionFactory = sessionFactory;
ConnectionProvider connectionProvider = ((SessionFactoryImplementor) sessionFactory).getServiceRegistry().getService(ConnectionProvider.class);
if(connectionProvider instanceof DatasourceConnectionProviderImpl) {
this.dataSource = ((DatasourceConnectionProviderImpl) connectionProvider).getDataSource();
if(dataSource instanceof TransactionAwareDataSourceProxy) {
this.dataSource = ((TransactionAwareDataSourceProxy) dataSource).getTargetDataSource();
}
jdbcExceptionTranslator = new SQLErrorCodeSQLExceptionTranslator(dataSource);
}
else {
// must be in unit test mode, setup default translator
SQLErrorCodeSQLExceptionTranslator sqlErrorCodeSQLExceptionTranslator = new SQLErrorCodeSQLExceptionTranslator();
sqlErrorCodeSQLExceptionTranslator.setDatabaseProductName("H2");
jdbcExceptionTranslator = sqlErrorCodeSQLExceptionTranslator;
}
}
项目:vibur-dbcp-hibernate4
文件:ViburDBCPConnectionProviderTest.java
@Test
public void testSelectStatementWithStatementsCache() throws SQLException {
Session session = HibernateTestUtils.getSessionFactoryWithStmtCache().openSession();
ConnectionProvider cp = ((SessionFactoryImplementor) session.getSessionFactory())
.getServiceRegistry().getService(ConnectionProvider.class);
ViburDBCPDataSource ds = ((ViburDBCPConnectionProvider) cp).getDataSource();
ConcurrentMap<StatementMethod, StatementHolder> mockedStatementCache = mockStatementCache(ds);
executeAndVerifySelectInSession(session);
// resources/hibernate-with-stmt-cache.cfg.xml defines pool with 1 connection only, that's why
// the second session will get and use the same underlying connection.
session = HibernateTestUtils.getSessionFactoryWithStmtCache().openSession();
executeAndVerifySelectInSession(session);
InOrder inOrder = inOrder(mockedStatementCache);
inOrder.verify(mockedStatementCache).get(key1.capture());
inOrder.verify(mockedStatementCache).putIfAbsent(same(key1.getValue()), val1.capture());
inOrder.verify(mockedStatementCache).get(key2.capture());
assertEquals(1, mockedStatementCache.size());
assertTrue(mockedStatementCache.containsKey(key1.getValue()));
assertEquals(key1.getValue(), key2.getValue());
assertEquals(AVAILABLE, val1.getValue().state().get());
}
项目:unitime
文件:HibernateUtil.java
public static void closeHibernate() {
if (sSessionFactory!=null) {
if (sSessionFactory instanceof SessionFactoryImpl) {
ConnectionProvider cp = ((SessionFactoryImpl)sSessionFactory).getConnectionProvider();
if (cp instanceof DisposableConnectionProvider) {
try {
((DisposableConnectionProvider)cp).destroy();
} catch (Exception e) {
sLog.error("Failed to destroy connection provider: " + e.getMessage());
}
}
}
sSessionFactory.close();
sSessionFactory=null;
}
}
项目:dropwizard-routing
文件:RoutingSessionFactoryFactory.java
/**
* Builds a {@link SessionFactory}
* @param bundle
* the bundle
* @param dbConfig
* the dbconfig
* @param connectionProvider
* the connection provider
* @param properties
* the hibernate properties
* @param entities
* the persistent entities
* @return {@link SessionFactory}
*/
private SessionFactory buildSessionFactory(RoutingHibernateBundle<?> bundle, DataSourceFactory dbConfig,
ConnectionProvider connectionProvider, Map<String, String> properties, List<Class<?>> entities) {
final Configuration configuration = new Configuration();
configuration.setProperty(AvailableSettings.CURRENT_SESSION_CONTEXT_CLASS, "managed");
configuration.setProperty(AvailableSettings.USE_SQL_COMMENTS,
Boolean.toString(dbConfig.isAutoCommentsEnabled()));
configuration.setProperty(AvailableSettings.USE_GET_GENERATED_KEYS, "true");
configuration.setProperty(AvailableSettings.GENERATE_STATISTICS, "true");
configuration.setProperty(AvailableSettings.USE_REFLECTION_OPTIMIZER, "true");
configuration.setProperty(AvailableSettings.ORDER_UPDATES, "true");
configuration.setProperty(AvailableSettings.ORDER_INSERTS, "true");
configuration.setProperty(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
configuration.setProperty("jadira.usertype.autoRegisterUserTypes", "true");
for (Map.Entry<String, String> property : properties.entrySet()) {
configuration.setProperty(property.getKey(), property.getValue());
}
addAnnotatedClasses(configuration, entities);
bundle.configure(configuration);
final ServiceRegistry registry = new StandardServiceRegistryBuilder()
.addService(ConnectionProvider.class, connectionProvider).applySettings(properties).build();
return configuration.buildSessionFactory(registry);
}
项目:Hotel-Properties-Management-System
文件:DataSourceFactory.java
public Connection getSqlConnection() {
Connection connection = null;
try {
connection = getSessionFactory().
getSessionFactoryOptions().getServiceRegistry().
getService(ConnectionProvider.class).getConnection();
} catch (SQLException e) {
final InformationFrame INFORMATION_FRAME = new InformationFrame();
INFORMATION_FRAME.setMessage("Connection converting error!\n" +e.getLocalizedMessage());
INFORMATION_FRAME.setVisible(true);
}
return connection;
}
项目:lams
文件:ManagedProviderConnectionHelper.java
public void prepare(boolean needsAutoCommit) throws SQLException {
serviceRegistry = createServiceRegistry( cfgProperties );
connection = serviceRegistry.getService( ConnectionProvider.class ).getConnection();
if ( needsAutoCommit && ! connection.getAutoCommit() ) {
connection.commit();
connection.setAutoCommit( true );
}
}
项目:lams
文件:ManagedProviderConnectionHelper.java
private void releaseConnection() throws SQLException {
if ( connection != null ) {
try {
new SqlExceptionHelper().logAndClearWarnings( connection );
}
finally {
try {
serviceRegistry.getService( ConnectionProvider.class ).closeConnection( connection );
}
finally {
connection = null;
}
}
}
}
项目:lams
文件:DriverManagerConnectionProviderImpl.java
@Override
@SuppressWarnings( {"unchecked"})
public <T> T unwrap(Class<T> unwrapType) {
if ( ConnectionProvider.class.equals( unwrapType ) ||
DriverManagerConnectionProviderImpl.class.isAssignableFrom( unwrapType ) ) {
return (T) this;
}
else {
throw new UnknownUnwrapTypeException( unwrapType );
}
}
项目:lams
文件:UserSuppliedConnectionProviderImpl.java
@Override
@SuppressWarnings( {"unchecked"})
public <T> T unwrap(Class<T> unwrapType) {
if ( ConnectionProvider.class.equals( unwrapType ) ||
UserSuppliedConnectionProviderImpl.class.isAssignableFrom( unwrapType ) ) {
return (T) this;
}
else {
throw new UnknownUnwrapTypeException( unwrapType );
}
}
项目:lams
文件:DatasourceConnectionProviderImpl.java
@Override
@SuppressWarnings( {"unchecked"})
public <T> T unwrap(Class<T> unwrapType) {
if ( ConnectionProvider.class.equals( unwrapType ) ||
DatasourceConnectionProviderImpl.class.isAssignableFrom( unwrapType ) ) {
return (T) this;
}
else if ( DataSource.class.isAssignableFrom( unwrapType ) ) {
return (T) getDataSource();
}
else {
throw new UnknownUnwrapTypeException( unwrapType );
}
}
项目:lams
文件:ConnectionProviderInitiator.java
private ConnectionProvider instantiateExplicitConnectionProvider(
String providerName,
StrategySelector strategySelector) {
try {
LOG.instantiatingExplicitConnectionProvider( providerName );
// This relies on selectStrategyImplementor trying
// classLoaderService.classForName( name ).
// TODO: Maybe we shouldn't rely on that here and do it manually?
return strategySelector.selectStrategyImplementor( ConnectionProvider.class, providerName ).newInstance();
}
catch ( Exception e ) {
throw new HibernateException( "Could not instantiate connection provider [" + providerName + "]", e );
}
}
项目:lams
文件:ConnectionProviderInitiator.java
private ConnectionProvider instantiateC3p0Provider(StrategySelector strategySelector) {
try {
return strategySelector.selectStrategyImplementor( ConnectionProvider.class, C3P0_STRATEGY ).newInstance();
}
catch ( Exception e ) {
LOG.c3p0ProviderClassNotFound( C3P0_STRATEGY );
return null;
}
}
项目:lams
文件:ConnectionProviderInitiator.java
private ConnectionProvider instantiateProxoolProvider(StrategySelector strategySelector) {
try {
return strategySelector.selectStrategyImplementor( ConnectionProvider.class, PROXOOL_STRATEGY ).newInstance();
}
catch ( Exception e ) {
LOG.proxoolProviderClassNotFound( PROXOOL_STRATEGY );
return null;
}
}
项目:lams
文件:JdbcServicesImpl.java
private JdbcConnectionAccess buildJdbcConnectionAccess(Map configValues) {
final MultiTenancyStrategy multiTenancyStrategy = MultiTenancyStrategy.determineMultiTenancyStrategy( configValues );
if ( MultiTenancyStrategy.NONE == multiTenancyStrategy ) {
connectionProvider = serviceRegistry.getService( ConnectionProvider.class );
return new ConnectionProviderJdbcConnectionAccess( connectionProvider );
}
else {
connectionProvider = null;
final MultiTenantConnectionProvider multiTenantConnectionProvider = serviceRegistry.getService( MultiTenantConnectionProvider.class );
return new MultiTenantConnectionProviderJdbcConnectionAccess( multiTenantConnectionProvider );
}
}
项目:postguice
文件:DBCPConnectionProvider.java
@Override
@SuppressWarnings("unchecked")
public <T> T unwrap(Class<T> unwrapType) {
if (ConnectionProvider.class.equals(unwrapType) || DBCPConnectionProvider.class.isAssignableFrom(unwrapType)) {
return (T) this;
}
if (DataSource.class.isAssignableFrom(unwrapType)) {
return (T) this.dataSource;
}
throw new UnknownUnwrapTypeException(unwrapType);
}
项目:CredentialStorageService-dw-hibernate
文件:SessionFactoryFactory.java
private ConnectionProvider buildConnectionProvider(final DataSource dataSource,
final Map<String, String> properties) {
final DatasourceConnectionProviderImpl connectionProvider = new DatasourceConnectionProviderImpl();
connectionProvider.setDataSource(dataSource);
connectionProvider.configure(properties);
return connectionProvider;
}
项目:CredentialStorageService-dw-hibernate
文件:SessionFactoryFactory.java
private SessionFactory buildSessionFactory(final RemoteCredentialHibernateBundle<?> bundle,
final PooledDataSourceFactory dbConfig,
final ConnectionProvider connectionProvider,
final Map<String, String> properties,
final List<Class<?>> entities) {
final Configuration configuration = new Configuration();
configuration.setProperty(AvailableSettings.CURRENT_SESSION_CONTEXT_CLASS, "managed");
configuration.setProperty(AvailableSettings.USE_SQL_COMMENTS,
Boolean.toString(dbConfig.isAutoCommentsEnabled()));
configuration.setProperty(AvailableSettings.USE_GET_GENERATED_KEYS, "true");
configuration.setProperty(AvailableSettings.GENERATE_STATISTICS, "true");
configuration.setProperty(AvailableSettings.USE_REFLECTION_OPTIMIZER, "true");
configuration.setProperty(AvailableSettings.ORDER_UPDATES, "true");
configuration.setProperty(AvailableSettings.ORDER_INSERTS, "true");
configuration.setProperty(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
configuration.setProperty("jadira.usertype.autoRegisterUserTypes", "true");
for (final Map.Entry<String, String> property : properties.entrySet()) {
configuration.setProperty(property.getKey(), property.getValue());
}
this.addAnnotatedClasses(configuration, entities);
final ServiceRegistry registry = new StandardServiceRegistryBuilder()
.addService(ConnectionProvider.class, connectionProvider)
.applySettings(properties)
.build();
this.configure(configuration, registry);
return configuration.buildSessionFactory(registry);
}
项目:HikariCP
文件:HikariConnectionProvider.java
@Override
@SuppressWarnings("unchecked")
public <T> T unwrap(Class<T> unwrapType)
{
if ( ConnectionProvider.class.equals( unwrapType ) ||
HikariConnectionProvider.class.isAssignableFrom( unwrapType ) ) {
return (T) this;
}
else if ( DataSource.class.isAssignableFrom( unwrapType ) ) {
return (T) this.hds;
}
else {
throw new UnknownUnwrapTypeException( unwrapType );
}
}
项目:invesdwin-context-persistence
文件:BeanLookupDatasourceConnectionProvider.java
@Override
@SuppressWarnings({ "unchecked" })
public <T> T unwrap(final Class<T> unwrapType) {
if (ConnectionProvider.class.equals(unwrapType)
|| BeanLookupDatasourceConnectionProvider.class.isAssignableFrom(unwrapType)) {
return (T) this;
} else if (DataSource.class.isAssignableFrom(unwrapType)) {
return (T) dataSource;
} else {
throw new UnknownUnwrapTypeException(unwrapType);
}
}
项目:Plume
文件:HibernateFactory.java
/**
* Extrait une DataSource d'une EntityManagerFactory
*/
public static DataSource applicationDataSource(EntityManagerFactory entityManagerFactory) {
EntityManagerImpl entityManagerImpl = (EntityManagerImpl) entityManagerFactory.createEntityManager();
try {
HikariCPConnectionProvider hikariCPConnectionProvider = (HikariCPConnectionProvider) entityManagerImpl.getFactory().getSessionFactory().getServiceRegistry().getService(ConnectionProvider.class);
Field dataSourceField = HikariCPConnectionProvider.class.getDeclaredField("hds");
dataSourceField.setAccessible(true);
return (HikariDataSource) dataSourceField.get(hikariCPConnectionProvider);
} catch (NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException(e);
} finally {
entityManagerImpl.close();
}
}
项目:generic-repository
文件:ManagerFactory.java
public Connection getConnection() {
Connection connection = null;
try {
Session session = (Session) em.getDelegate();
SessionFactoryImplementor sfi = (SessionFactoryImplementor) session.getSessionFactory();
ConnectionProvider cp = sfi.getConnectionProvider();
connection = (Connection) cp.getConnection();
return connection;
} catch (Exception ex) {
ex.printStackTrace();
}
return connection;
}
项目:yawl
文件:YPersistenceManager.java
public void closeFactory() { // shutdown persistence engine
if (factory != null) {
if (factory instanceof SessionFactoryImpl) {
SessionFactoryImpl sf = (SessionFactoryImpl) factory;
ConnectionProvider conn = sf.getConnectionProvider();
if (conn instanceof C3P0ConnectionProvider) {
((C3P0ConnectionProvider)conn).stop();
}
}
factory.close();
}
}
项目:yawl
文件:HibernateEngine.java
public void closeFactory() {
if (_factory != null) {
if (_factory instanceof SessionFactoryImpl) {
SessionFactoryImpl sf = (SessionFactoryImpl) _factory;
ConnectionProvider conn = sf.getConnectionProvider();
if (conn instanceof C3P0ConnectionProvider) {
((C3P0ConnectionProvider)conn).stop();
}
}
_factory.close();
}
}
项目:nway-jdbc
文件:JndiConnectionProvider.java
@Override
@SuppressWarnings({ "unchecked" })
public <T> T unwrap(Class<T> unwrapType) {
if (ConnectionProvider.class.equals(unwrapType)
|| DatasourceConnectionProviderImpl.class.isAssignableFrom(unwrapType)) {
return (T) this;
} else if (DataSource.class.isAssignableFrom(unwrapType)) {
return (T) this.dataSource;
} else {
throw new UnknownUnwrapTypeException(unwrapType);
}
}
项目:HibernateDemos
文件:SimpleMultiTenantConnectionProvider.java
@Override
protected ConnectionProvider selectConnectionProvider(String tenantIdentifier) {
if ( TENANT_ID_1.equals( tenantIdentifier ) ) {
return foo1ConnectionProvider;
}
else if ( TENANT_ID_2.equals( tenantIdentifier ) ) {
return foo2ConnectionProvider;
}
throw new IllegalArgumentException( "Unknown tenant identifier" );
}
项目:HibernateDemos
文件:SimpleMultiTenantConnectionProvider.java
private ConnectionProvider buildConnectionProvider(String dbName) {
Properties props = new Properties( null );
props.put( "hibernate.connection.driver_class", DRIVER );
// Inject dbName into connection url string.
props.put( "hibernate.connection.url", String.format( URL, dbName ) );
props.put( "hibernate.connection.username", USER );
props.put( "hibernate.connection.password", PASS );
// Note that DriverManagerConnectionProviderImpl is an internal class. However, rather than creating
// a ConnectionProvider, I'm using it for simplicity's sake.
// DriverManagerConnectionProviderImpl obtains a Connection through the JDBC Driver#connect
DriverManagerConnectionProviderImpl connectionProvider = new DriverManagerConnectionProviderImpl();
connectionProvider.configure( props );
return connectionProvider;
}
项目:hibernate-conventions
文件:ConventionUtils.java
public static Connection getConnection(ServiceRegistry serviceRegistry) {
try {
return serviceRegistry.getService(ConnectionProvider.class).getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
项目:croquet
文件:DataSourceHibernateModule.java
@Override
protected void configure() {
// bind the ConnectionProvider
bind(ConnectionProvider.class).to(TomcatJDBCConnectionProvider.class);
bind(PersistService.class).to(CroquetPersistService.class);
bind(UnitOfWork.class).to(CroquetPersistService.class);
bind(EntityManager.class).toProvider(CroquetPersistService.class);
bind(EntityManagerFactory.class).toProvider(CroquetPersistService.EntityManagerFactoryProvider.class);
}
项目:croquet
文件:CroquetPersistService.java
/**
* Constructs the {@link CroquetPersistService}.
* @param settings the settings to configure everything with.
* @param connectionProvider the {@link ConnectionProvider} to use.
*/
@Inject
public CroquetPersistService(final AbstractSettings settings,
@Nullable @Named("jpa-unit-name") final String persistenceUnitName,
final ConnectionProvider connectionProvider) {
this.settings = settings;
this.persistenceUnitName = persistenceUnitName;
this.connectionProvider = connectionProvider;
}
项目:hibernate-demos
文件:SimpleMultiTenantConnectionProvider.java
@Override
protected ConnectionProvider selectConnectionProvider(String tenantIdentifier) {
if ( TENANT_ID_1.equals( tenantIdentifier ) ) {
return foo1ConnectionProvider;
}
else if ( TENANT_ID_2.equals( tenantIdentifier ) ) {
return foo2ConnectionProvider;
}
throw new IllegalArgumentException( "Unknown tenant identifier" );
}
项目:hibernate-demos
文件:SimpleMultiTenantConnectionProvider.java
private ConnectionProvider buildConnectionProvider(String dbName) {
Properties props = new Properties( null );
props.put( "hibernate.connection.driver_class", DRIVER );
// Inject dbName into connection url string.
props.put( "hibernate.connection.url", String.format( URL, dbName ) );
props.put( "hibernate.connection.username", USER );
props.put( "hibernate.connection.password", PASS );
// Note that DriverManagerConnectionProviderImpl is an internal class. However, rather than creating
// a ConnectionProvider, I'm using it for simplicity's sake.
// DriverManagerConnectionProviderImpl obtains a Connection through the JDBC Driver#connect
DriverManagerConnectionProviderImpl connectionProvider = new DriverManagerConnectionProviderImpl();
connectionProvider.configure( props );
return connectionProvider;
}
项目:lemon
文件:SessionFactoryWrapper.java
public ConnectionProvider getConnectionProvider() {
return sessionFactoryImplementor.getConnectionProvider();
}