io.ebeaninternal.server.transaction.TransactionFactoryBasicWithRead Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ebean Show documentation
Show all versions of ebean Show documentation
composite of common runtime dependencies for all platforms
package io.ebeaninternal.server.transaction;
import io.ebean.util.JdbcClose;
import io.ebeaninternal.api.SpiTransaction;
import javax.persistence.PersistenceException;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
/**
* Aware of read only autoCommit based DataSource.
*
* This means for implicit query only transactions we can:
* - Use the read only DataSource
* - Skip explicit commit (as we use AutoCommit instead)
*
*/
class TransactionFactoryBasicWithRead extends TransactionFactoryBasic {
private final DataSource readOnlyDataSource;
TransactionFactoryBasicWithRead(TransactionManager manager, DataSourceSupplier dataSourceSupplier) {
super(manager, dataSourceSupplier);
this.readOnlyDataSource = dataSourceSupplier.getReadOnlyDataSource();
}
@Override
public SpiTransaction createQueryTransaction(Object tenantId) {
Connection connection = null;
try {
connection = readOnlyDataSource.getConnection();
return new ImplicitReadOnlyTransaction(manager, connection);
} catch (PersistenceException ex) {
JdbcClose.close(connection);
throw ex;
} catch (SQLException ex) {
throw new PersistenceException(ex);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy