FileDocCategorySizeDatePackage
TransactionHelper.javaAPI DocHibernate 3.2.51595Fri Jan 13 12:40:16 GMT 2006org.hibernate.engine

TransactionHelper

public abstract class TransactionHelper extends Object
Allows work to be done outside the current transaction, by suspending it, and performing work in a new transaction
author
Emmanuel Bernard

Fields Summary
Constructors Summary
Methods Summary
protected abstract java.io.SerializabledoWorkInCurrentTransaction(java.sql.Connection conn, java.lang.String sql)
The work to be done

public java.io.SerializabledoWorkInNewTransaction(SessionImplementor session)
Suspend the current transaction and perform work in a new transaction

		class Work implements IsolatedWork {
			Serializable generatedValue;
			public void doWork(Connection connection) throws HibernateException {
				String sql = null;
				try {
					generatedValue = doWorkInCurrentTransaction( connection, sql );
				}
				catch( SQLException sqle ) {
					throw JDBCExceptionHelper.convert(
							session.getFactory().getSQLExceptionConverter(),
							sqle,
							"could not get or update next value",
							sql
						);
				}
			}
		}
		Work work = new Work();
		Isolater.doIsolatedWork( work, session );
		return work.generatedValue;