All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.ebeaninternal.server.transaction.DataSourceSupplier Maven / Gradle / Ivy

There is a newer version: 15.8.1
Show newest version
package io.ebeaninternal.server.transaction;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * Supply the DataSource to the transaction manager.
 * 

* Implementations can support multi-tenancy via DB or SCHEMA. *

*/ public interface DataSourceSupplier { /** * Return the DataSource to use for the current request. *

* This should take into account multi-tenancy and the current tenantId. *

*/ DataSource getDataSource(); /** * Return the read only DataSource to use for the current request. *

* This can return null meaning that no read only DataSource (with autoCommit) * is available for use so normal transactions with explicit commit should be used. *

*/ DataSource getReadOnlyDataSource(); /** * Return a connection from the DataSource taking into account a tenantId for multi-tenant lazy loading. * * @param tenantId Most often null but well supplied indicates a multi-tenant lazy loading query * @return the connection to use */ Connection getConnection(Object tenantId) throws SQLException; /** * Return a connection from the read only DataSource taking into account a tenantId for multi-tenant lazy loading. * * @param tenantId Most often null but well supplied indicates a multi-tenant lazy loading query * @return the connection to use */ Connection getReadOnlyConnection(Object tenantId) throws SQLException; /** * Shutdown the datasource de-registering the JDBC driver if requested. */ void shutdown(boolean deregisterDriver); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy