
com.jfireframework.jfireSqlStarter.TxManager Maven / Gradle / Ivy
package com.jfireframework.jfireSqlStarter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.jfireframework.baseutil.exception.UnSupportException;
import com.jfireframework.jfire.support.BeanInstanceResolver.extend.aop.tx.TransactionManager;
import com.jfireframework.sql.session.SessionFactory;
import com.jfireframework.sql.session.SqlSession;
public class TxManager implements TransactionManager
{
private SessionFactory sessionFactory;
private static final Logger logger = LoggerFactory.getLogger(TxManager.class);
@Override
public void beginTransAction(int isolate)
{
logger.trace("事务开启");
SqlSession session = sessionFactory.getCurrentSession();
if (session == null)
{
throw new UnSupportException("准备开启事务但是没有session,请检查");
}
session.beginTransAction(isolate);
}
@Override
public void commit()
{
logger.debug("提交事务");
SqlSession session = sessionFactory.getCurrentSession();
if (session == null)
{
throw new RuntimeException("事务在提交时没有session,session可能于其他地方被清楚,请检查");
}
session.commit();
}
@Override
public void rollback(Throwable e)
{
logger.trace("事务回滚");
SqlSession session = sessionFactory.getCurrentSession();
if (session == null)
{
throw new UnSupportException("准备回滚事务但是没有session,请检查", e);
}
session.rollback();
}
public void setSessionFactory(SessionFactory sessionFactory)
{
this.sessionFactory = sessionFactory;
}
@Override
public void buildCurrentSession()
{
sessionFactory.getOrCreateCurrentSession();
}
@Override
public void closeCurrentSession()
{
SqlSession session = sessionFactory.getCurrentSession();
if (session == null)
{
throw new UnSupportException("准备关闭但是没有session,请检查");
}
session.close();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy