Java 类org.hibernate.engine.transaction.spi.TransactionContext 实例源码

项目:lams    文件:TransactionCoordinatorImpl.java   
public TransactionCoordinatorImpl(
        Connection userSuppliedConnection,
        TransactionContext transactionContext) {
    this.transactionContext = transactionContext;
    this.jdbcCoordinator = new JdbcCoordinatorImpl( userSuppliedConnection, this );
    this.transactionEnvironment = transactionContext.getTransactionEnvironment();
    this.transactionFactory = this.transactionEnvironment.getTransactionFactory();
    this.observers = new ArrayList<TransactionObserver>();
    this.synchronizationRegistry = new SynchronizationRegistryImpl();
    reset();

    final boolean registerSynchronization = transactionContext.isAutoCloseSessionEnabled()
            || transactionContext.isFlushBeforeCompletionEnabled()
            || transactionContext.getConnectionReleaseMode() == ConnectionReleaseMode.AFTER_TRANSACTION;
    if ( registerSynchronization ) {
        pulse();
    }
}
项目:lams    文件:TransactionCoordinatorImpl.java   
public static TransactionCoordinatorImpl deserialize(
        ObjectInputStream ois,
        TransactionContext transactionContext) throws ClassNotFoundException, IOException {
    final JdbcCoordinatorImpl jdbcCoordinator = JdbcCoordinatorImpl.deserialize( ois, transactionContext );
    final int observerCount = ois.readInt();
    final List<TransactionObserver> observers = CollectionHelper.arrayList( observerCount );
    for ( int i = 0; i < observerCount; i++ ) {
        observers.add( (TransactionObserver) ois.readObject() );
    }
    final TransactionCoordinatorImpl transactionCoordinator = new TransactionCoordinatorImpl(
            transactionContext,
            jdbcCoordinator,
            observers
    );
    jdbcCoordinator.afterDeserialize( transactionCoordinator );
    return transactionCoordinator;
}
项目:lams    文件:LogicalConnectionImpl.java   
/**
 * Deserialization hook
 *
 * @param ois The stream to read our state from
 * @param transactionContext The transactionContext which owns this logical connection
 *
 * @return The deserialized LogicalConnectionImpl
 *
 * @throws IOException Trouble accessing the stream
 * @throws ClassNotFoundException Trouble reading the stream
 */
public static LogicalConnectionImpl deserialize(
        ObjectInputStream ois,
        TransactionContext transactionContext) throws IOException, ClassNotFoundException {
    final boolean isUserSuppliedConnection = ois.readBoolean();
    final boolean isClosed = ois.readBoolean();
    final int observerCount = ois.readInt();
    final List<ConnectionObserver> observers = CollectionHelper.arrayList( observerCount );
    for ( int i = 0; i < observerCount; i++ ) {
        observers.add( (ConnectionObserver) ois.readObject() );
    }
    return new LogicalConnectionImpl(
            transactionContext.getConnectionReleaseMode(),
            transactionContext.getTransactionEnvironment().getJdbcServices(),
            transactionContext.getJdbcConnectionAccess(),
            isUserSuppliedConnection,
            isClosed,
            observers
    );
}
项目:lams    文件:TransactionCoordinatorImpl.java   
public TransactionCoordinatorImpl(
        TransactionContext transactionContext,
        JdbcCoordinatorImpl jdbcCoordinator,
        List<TransactionObserver> observers) {
    this.transactionContext = transactionContext;
    this.jdbcCoordinator = jdbcCoordinator;
    this.transactionEnvironment = transactionContext.getTransactionEnvironment();
    this.transactionFactory = this.transactionEnvironment.getTransactionFactory();
    this.observers = observers;
    this.synchronizationRegistry = new SynchronizationRegistryImpl();
    reset();
}
项目:lams    文件:SynchronizationCallbackCoordinatorNonTrackingImpl.java   
private TransactionContext transactionContext() {
    return transactionCoordinator.getTransactionContext();
}
项目:lams    文件:TransactionCoordinatorImpl.java   
@Override
public TransactionContext getTransactionContext() {
    return transactionContext;
}
项目:lams    文件:AbstractBatchImpl.java   
public TransactionContext transactionContext() {
    return transactionContext;
}
项目:lams    文件:HibernateTransactionManager.java   
/**
 * Return whether the given Hibernate Session will always hold the same
 * JDBC Connection. This is used to check whether the transaction manager
 * can safely prepare and clean up the JDBC Connection used for a transaction.
 * <p>The default implementation checks the Session's connection release mode
 * to be "on_close".
 * @param session the Hibernate Session to check
 * @see org.hibernate.engine.transaction.spi.TransactionContext#getConnectionReleaseMode()
 * @see org.hibernate.ConnectionReleaseMode#ON_CLOSE
 */
protected boolean isSameConnectionForEntireSession(Session session) {
    if (!(session instanceof TransactionContext)) {
        // The best we can do is to assume we're safe.
        return true;
    }
    ConnectionReleaseMode releaseMode = ((TransactionContext) session).getConnectionReleaseMode();
    return ConnectionReleaseMode.ON_CLOSE.equals(releaseMode);
}
项目:spring4-understanding    文件:HibernateTransactionManager.java   
/**
 * Return whether the given Hibernate Session will always hold the same
 * JDBC Connection. This is used to check whether the transaction manager
 * can safely prepare and clean up the JDBC Connection used for a transaction.
 * <p>The default implementation checks the Session's connection release mode
 * to be "on_close".
 * @param session the Hibernate Session to check
 * @see org.hibernate.engine.transaction.spi.TransactionContext#getConnectionReleaseMode()
 * @see org.hibernate.ConnectionReleaseMode#ON_CLOSE
 */
protected boolean isSameConnectionForEntireSession(Session session) {
    if (!(session instanceof TransactionContext)) {
        // The best we can do is to assume we're safe.
        return true;
    }
    ConnectionReleaseMode releaseMode = ((TransactionContext) session).getConnectionReleaseMode();
    return ConnectionReleaseMode.ON_CLOSE.equals(releaseMode);
}
项目:class-guard    文件:HibernateTransactionManager.java   
/**
 * Return whether the given Hibernate Session will always hold the same
 * JDBC Connection. This is used to check whether the transaction manager
 * can safely prepare and clean up the JDBC Connection used for a transaction.
 * <p>The default implementation checks the Session's connection release mode
 * to be "on_close".
 * @param session the Hibernate Session to check
 * @see org.hibernate.engine.transaction.spi.TransactionContext#getConnectionReleaseMode()
 * @see org.hibernate.ConnectionReleaseMode#ON_CLOSE
 */
protected boolean isSameConnectionForEntireSession(Session session) {
    if (!(session instanceof TransactionContext)) {
        // The best we can do is to assume we're safe.
        return true;
    }
    ConnectionReleaseMode releaseMode = ((TransactionContext) session).getConnectionReleaseMode();
    return ConnectionReleaseMode.ON_CLOSE.equals(releaseMode);
}
项目:lams    文件:JdbcCoordinatorImpl.java   
/**
 * JDK deserialization hook
 *
 * @param ois The stream into which to write our state
 * @param transactionContext The transaction context which owns the JdbcCoordinatorImpl to be deserialized.
 *
 * @return The deserialized JdbcCoordinatorImpl
 *
 * @throws IOException Trouble accessing the stream
 * @throws ClassNotFoundException Trouble reading the stream
 */
public static JdbcCoordinatorImpl deserialize(
        ObjectInputStream ois,
        TransactionContext transactionContext) throws IOException, ClassNotFoundException {
    return new JdbcCoordinatorImpl( LogicalConnectionImpl.deserialize( ois, transactionContext ) );
}