HibernateDaoSuppor源码

来源:互联网 发布:淘宝卖家的支付宝红包 编辑:程序博客网 时间:2024/06/05 06:02
package org.springframework.orm.hibernate3.support;
import org.hibernate.HibernateException;  
import org.hibernate.Session;  
import org.hibernate.SessionFactory;  
import org.springframework.dao.DataAccessException;  
import org.springframework.dao.DataAccessResourceFailureException;  
import org.springframework.dao.support.DaoSupport;  
import org.springframework.orm.hibernate3.HibernateTemplate;  
import org.springframework.orm.hibernate3.SessionFactoryUtils;
public abstract class HibernateDaoSupport extends DaoSupport{  
  private HibernateTemplate hibernateTemplate;
  // set注入sessionFactory  
  public final void setSessionFactory(SessionFactory paramSessionFactory) {  
     this.hibernateTemplate = createHibernateTemplate(paramSessionFactory);  
  }  
  //创建HibernateTemplate 俺们就是用这个对象  
  protected HibernateTemplate createHibernateTemplate(SessionFactory paramSessionFactory)  {  
    return new HibernateTemplate(paramSessionFactory);  
  }  
  public final SessionFactory getSessionFactory()  {  
    return ((this.hibernateTemplate != null) ? this.hibernateTemplate.getSessionFactory() : null);  
  }  
  public final void setHibernateTemplate(HibernateTemplate paramHibernateTemplate)  {  
    this.hibernateTemplate = paramHibernateTemplate;  
  }  
  public final HibernateTemplate getHibernateTemplate()  {  
    return this.hibernateTemplate;  
  }  
  protected final void checkDaoConfig() {  
    if (this.hibernateTemplate == null)  
    throw new IllegalArgumentException("'sessionFactory' or 'hibernateTemplate' is required");  
  }  
 //创建session  
  protected final Session getSession() throws DataAccessResourceFailureException, IllegalStateException  {  
    return getSession(this.hibernateTemplate.isAllowCreate());  
  }  
 protected final Session getSession(boolean paramBoolean)  throws DataAccessResourceFailureException, IllegalStateException  {  
    return ((!(paramBoolean)) ? SessionFactoryUtils.getSession(getSessionFactory(), false) : SessionFactoryUtils.getSession(getSessionFactory(), this.hibernateTemplate.getEntityInterceptor(), this.hibernateTemplate.getJdbcExceptionTranslator()));  
  }  
 protected final DataAccessException convertHibernateAccessException(HibernateException paramHibernateException)  {  
    return this.hibernateTemplate.convertHibernateAccessException(paramHibernateException);  
  }  
 protected final void releaseSession(Session paramSession)  {  
    SessionFactoryUtils.releaseSession(paramSession, getSessionFactory());  
  }
0 0