hibernateaspect.java

来自「办公自动化项目」· Java 代码 · 共 40 行

JAVA
40
字号
package hong.javanet.dao;

import hong.javanet.aop.InterceptorHandler;
import hong.javanet.frame.PostInterceptorException;
import hong.javanet.frame.PreInterceptorException;
import hong.javanet.dao.*;
import org.hibernate.*;
//import hong.javanet.frame.ContextUtil;
import hong.javanet.util.ExceptionUtil;
import org.apache.log4j.Logger;

public class HibernateAspect        extends InterceptorHandler {
    private static Logger log =
      Logger.getLogger(HibernateAspect.class);
    Transaction tran  = null;
    public void doPreCommand(Object command) throws PostInterceptorException {
        tran =  HibernateUtil.currentSession().beginTransaction();
    }

    public void doPostCommand(Object command) throws PostInterceptorException {
       // Transaction tran = ContextUtil.getContext().transaction;
        if (tran != null) {
          tran.commit();
        } //提交
        HibernateUtil.closeSession(); //释放Session
    }

    public void doExceptionThrow(Object command,Throwable ex) throws
            PostInterceptorException {
        //Transaction tran = ContextUtil.getContext().transaction;
        if (tran != null) {
          tran.rollback();
        } //回滚
        HibernateUtil.closeSession(); //释放Session
        log.error(ex.getMessage(), ex); //错误日志
//        throw ExceptionUtil.wrapException(ex); //包装异常向外抛
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?