package com.thunisoft.kbweb.common;
import org.springframework.orm.hibernate3.HibernateTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import com.thunisoft.summer.sys.AppContext;
/**
* 事务处理帮助类
* @author lvchy
* Dec 9, 2010 5:18:15 PM
*/
public class TransactionHelper
{
private HibernateTransactionManager manager;
public HibernateTransactionManager getManager() {
return manager;
}
public void setManager(HibernateTransactionManager manager) {
this.manager = manager;
}
/**
* 调用此方法开启事务,并获得一个事务状态对象
* @return 事务状态对象
*/
public TransactionStatus start() {
TransactionStatus status = manager.getTransaction(new DefaultTransactionDefinition(
TransactionDefinition.PROPAGATION_REQUIRES_NEW));
return status;
}
/**
* 事务提交
* @param status
*/
public void commit(TransactionStatus status) {
manager.commit(status);
}
/**
* 事务回滚
* @param status
*/
public void rollback(TransactionStatus status) {
manager.rollback(status);
}
/**
* 获取事务处理帮助类实例
* @return
*/
public static TransactionHelper getInstance() {
return (TransactionHelper) AppContext.getInstance().getSpringContext().getBean(
TransactionHelper.class.getName());
}
}