Class HostConnectionProvider

java.lang.Object
io.hypersistence.optimizer.core.event.persistence.HostConnectionProvider
All Implemented Interfaces:
Serializable, org.hibernate.engine.jdbc.connections.spi.ConnectionProvider, org.hibernate.service.Service, org.hibernate.service.spi.Wrapped

public class HostConnectionProvider extends Object implements org.hibernate.engine.jdbc.connections.spi.ConnectionProvider
The HostConnectionProvider delegates all JDBC connection handling to the host application's ConnectionProvider, so that the short-lived SessionFactory used to generate the event tables borrows connections from the very same pool as the application.

Crucially, it deliberately does not implement Stoppable. When the temporary schema-generation ServiceRegistry is destroyed, Hibernate only calls stop() on Stoppable services, so the host connection pool is never closed by us.

Since:
2.14.0
Author:
Vlad Mihalcea
See Also:
  • Constructor Details

    • HostConnectionProvider

      public HostConnectionProvider(org.hibernate.engine.jdbc.connections.spi.ConnectionProvider delegate)
  • Method Details

    • getConnection

      public Connection getConnection() throws SQLException
      Specified by:
      getConnection in interface org.hibernate.engine.jdbc.connections.spi.ConnectionProvider
      Throws:
      SQLException
    • closeConnection

      public void closeConnection(Connection connection) throws SQLException
      Specified by:
      closeConnection in interface org.hibernate.engine.jdbc.connections.spi.ConnectionProvider
      Throws:
      SQLException
    • supportsAggressiveRelease

      public boolean supportsAggressiveRelease()
      Specified by:
      supportsAggressiveRelease in interface org.hibernate.engine.jdbc.connections.spi.ConnectionProvider
    • isUnwrappableAs

      public boolean isUnwrappableAs(Class<?> unwrapType)
      Specified by:
      isUnwrappableAs in interface org.hibernate.service.spi.Wrapped
    • unwrap

      public <T> T unwrap(Class<T> unwrapType)
      Specified by:
      unwrap in interface org.hibernate.service.spi.Wrapped