类org.hibernate.resource.transaction.spi.TransactionCoordinator源码实例Demo

下面列出了怎么用org.hibernate.resource.transaction.spi.TransactionCoordinator的API类实例代码及写法,或者点击链接到github查看源代码。

private void completeStrayTransaction() {
  if ( session == null ) {
    // nothing to do
    return;
  }

  if ( ( (SessionImplementor) session ).isClosed() ) {
    // nothing to do
    return;
  }

  if ( !session.isConnected() ) {
    // nothing to do
    return;
  }

  final TransactionCoordinator.TransactionDriver tdc =
      ( (SessionImplementor) session ).getTransactionCoordinator().getTransactionDriverControl();

  if ( tdc.getStatus().canRollback() ) {
    session.getTransaction().rollback();
  }
  session.close();
}
 
源代码2 项目: lams   文件: TransactionImpl.java
public TransactionImpl(
		TransactionCoordinator transactionCoordinator,
		ExceptionConverter exceptionConverter,
		AbstractSharedSessionContract session) {
	this.transactionCoordinator = transactionCoordinator;
	this.exceptionConverter = exceptionConverter;
	this.jpaCompliance = session.getFactory().getSessionFactoryOptions().getJpaCompliance();
	this.session = session;

	if ( session.isOpen() && transactionCoordinator.isActive() ) {
		this.transactionDriverControl = transactionCoordinator.getTransactionDriverControl();
	}
	else {
		LOG.debug( "TransactionImpl created on closed Session/EntityManager" );
	}

	if ( LOG.isDebugEnabled() ) {
		LOG.debugf(
				"On TransactionImpl creation, JpaCompliance#isJpaTransactionComplianceEnabled == %s",
				jpaCompliance.isJpaTransactionComplianceEnabled()
		);
	}
}
 
@Override
public TransactionCoordinator buildTransactionCoordinator(TransactionCoordinatorOwner owner, Options options) {
	if ( owner instanceof JdbcResourceTransactionAccess ) {
		return new JdbcResourceLocalTransactionCoordinatorImpl(
				this,
				owner,
				(JdbcResourceTransactionAccess) owner
		);
	}

	throw new HibernateException(
			"Could not determine ResourceLocalTransactionAccess to use in building TransactionCoordinator"
	);
}
 
@Override
public TransactionCoordinator buildTransactionCoordinator(TransactionCoordinatorOwner owner, Options options) {
	return new JtaTransactionCoordinatorImpl(
			this,
			owner,
			options.shouldAutoJoinTransaction()
	);
}
 
源代码5 项目: lams   文件: SessionImpl.java
@Override
protected void addSharedSessionTransactionObserver(TransactionCoordinator transactionCoordinator) {
	this.transactionObserver = new TransactionObserver() {
		@Override
		public void afterBegin() {
		}

		@Override
		public void beforeCompletion() {
			if ( isOpen() && getHibernateFlushMode() !=  FlushMode.MANUAL ) {
				managedFlush();
			}
			actionQueue.beforeTransactionCompletion();
			try {
				getInterceptor().beforeTransactionCompletion( getCurrentTransaction() );
			}
			catch (Throwable t) {
				log.exceptionInBeforeTransactionCompletionInterceptor( t );
			}
		}

		@Override
		public void afterCompletion(boolean successful, boolean delayed) {
			afterTransactionCompletion( successful, delayed );
			if ( !isClosed() && autoClose ) {
				managedClose();
			}
		}
	};
	transactionCoordinator.addObserver(transactionObserver);
}
 
源代码6 项目: lams   文件: SessionDelegatorBaseImpl.java
@Override
public TransactionCoordinator getTransactionCoordinator() {
	return delegate.getTransactionCoordinator();
}
 
源代码7 项目: lams   文件: SessionImpl.java
@Override
public TransactionCoordinator getTransactionCoordinator() {
	return shareTransactionContext ? session.getTransactionCoordinator() : null;
}
 
源代码8 项目: lams   文件: SessionImpl.java
@Override
protected void removeSharedSessionTransactionObserver(TransactionCoordinator transactionCoordinator) {
	super.removeSharedSessionTransactionObserver( transactionCoordinator );
	transactionCoordinator.removeObserver( transactionObserver );
}
 
源代码9 项目: lams   文件: AbstractSharedSessionContract.java
protected void addSharedSessionTransactionObserver(TransactionCoordinator transactionCoordinator) {
}
 
源代码10 项目: lams   文件: AbstractSharedSessionContract.java
protected void removeSharedSessionTransactionObserver(TransactionCoordinator transactionCoordinator) {
	transactionCoordinator.invalidate();
}
 
源代码11 项目: lams   文件: AbstractSharedSessionContract.java
@Override
public TransactionCoordinator getTransactionCoordinator() {
	return transactionCoordinator;
}
 
@Override
public TransactionCoordinator getTransactionCoordinator() {
	return target.getTransactionCoordinator();
}
 
源代码13 项目: lams   文件: JdbcSessionOwner.java
/**
 * Obtain the builder for TransactionCoordinator instances
 *
 * @return The TransactionCoordinatorBuilder
 */
TransactionCoordinator getTransactionCoordinator();
 
源代码14 项目: lams   文件: SharedSessionCreationOptions.java
TransactionCoordinator getTransactionCoordinator(); 
 类所在包
 类方法
 同包方法