/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.resource.jdbc.spi;

import org.hibernate.engine.jdbc.connections.spi.JdbcConnectionAccess;
import org.hibernate.resource.transaction.spi.TransactionCoordinator;

Contract for something that controls a JdbcSessionContext. The name comes from the design idea of a JdbcSession which encapsulates this information, which we will hopefully get back to later. The term "JDBC session" is taken from the SQL specification which calls a connection and its associated transaction context a "session".
Author:Steve Ebersole
/** * Contract for something that controls a JdbcSessionContext. The name comes from the * design idea of a JdbcSession which encapsulates this information, which we will hopefully * get back to later. * * The term "JDBC session" is taken from the SQL specification which calls a connection * and its associated transaction context a "session". * * @author Steve Ebersole */
public interface JdbcSessionOwner { JdbcSessionContext getJdbcSessionContext(); JdbcConnectionAccess getJdbcConnectionAccess();
Obtain the builder for TransactionCoordinator instances
Returns:The TransactionCoordinatorBuilder
/** * Obtain the builder for TransactionCoordinator instances * * @return The TransactionCoordinatorBuilder */
TransactionCoordinator getTransactionCoordinator();
Callback indicating recognition of entering into a transactional context whether that is explicitly via the Hibernate Transaction API or via registration of Hibernate's JTA Synchronization impl with a JTA Transaction
/** * Callback indicating recognition of entering into a transactional * context whether that is explicitly via the Hibernate * {@link org.hibernate.Transaction} API or via registration * of Hibernate's JTA Synchronization impl with a JTA Transaction */
void startTransactionBoundary();
A after-begin callback from the coordinator to its owner.
/** * A after-begin callback from the coordinator to its owner. */
void afterTransactionBegin();
A before-completion callback to the owner.
/** * A before-completion callback to the owner. */
void beforeTransactionCompletion();
An after-completion callback to the owner.
Params:
  • successful – Was the transaction successful?
  • delayed – Is this a delayed after transaction completion call (aka after a timeout)?
/** * An after-completion callback to the owner. * * @param successful Was the transaction successful? * @param delayed Is this a delayed after transaction completion call (aka after a timeout)? */
void afterTransactionCompletion(boolean successful, boolean delayed); void flushBeforeTransactionCompletion();
Get the Session-level JDBC batch size.
Returns:Session-level JDBC batch size
Since:5.2
/** * Get the Session-level JDBC batch size. * @return Session-level JDBC batch size * * @since 5.2 */
Integer getJdbcBatchSize(); }