Package com.vst.dao.hibernate

Source Code of com.vst.dao.hibernate.BaseDaoHibernate

package com.vst.dao.hibernate;

import java.io.Serializable;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.vst.dao.Dao;
import org.springframework.orm.ObjectRetrievalFailureException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

/**
* This class serves as the Base class for all other Daos - namely to hold
* common methods that they might all use. Can be used for standard CRUD
* operations.</p>
*
* <p><a href="BaseDaoHibernate.java.html"><i>View Source</i></a></p>
*
* @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a>
*/
public abstract class BaseDaoHibernate<T> extends HibernateDaoSupport implements
    Dao<T> {
  protected final Log log = LogFactory.getLog(getClass());

  abstract Class<T> getServiceClass();

  /**
   * @see com.vst.dao.Dao#saveObject(java.lang.Object)
   */
  // @Override
  protected void doSaveObject(Object o) {
    getHibernateTemplate().saveOrUpdate(o);
  }

  /**
   * @see com.vst.dao.Dao#getObject(java.lang.Class, java.io.Serializable)
   */
  // @Override
  protected Object doGetObject(Serializable id) {
    Object o = getHibernateTemplate().get(getServiceClass(), id);

    if (o == null) {
      throw new ObjectRetrievalFailureException(getServiceClass(), id);
    }

    return o;
  }

  /**
   * @see com.vst.dao.Dao#getObjects(java.lang.Class)
   */
  // @Override
  protected List<?> doGetObjects() {
    return getHibernateTemplate().loadAll(getServiceClass());
  }

  /**
   * @see com.vst.dao.Dao#removeObject(java.lang.Class, java.io.Serializable)
   */
  // @Override
  protected void doRemoveObject(Serializable id) {
    getHibernateTemplate().delete(doGetObject(id));
    // getHibernateTemplate().flush();
  }

  // @Override
  protected void doRemoveEntity(Object o) {
    getHibernateTemplate().delete(o);
    // getHibernateTemplate().flush();
  }

  // @Override
  protected void doEvict(Object o) {
    getHibernateTemplate().evict(o);
  }

//  @Override
  public void evict(T o) {
    doEvict(o);
  }

//  @Override
  public void removeEntity(T o) {
    doRemoveEntity(o);
  }

//  @Override
  public void removeObject(Integer o) {
    doRemoveObject(o);
  }

  @SuppressWarnings("unchecked")
//  @Override
  public List<T> getObjects(){
    return (List<T>) doGetObjects();
  }

//  @Override
  public void saveObject(T o) {
    doSaveObject(o);
  };

  @SuppressWarnings("unchecked")
//  @Override
  public T getObject(Integer id) {
    return (T) doGetObject(id);
  }

}
TOP

Related Classes of com.vst.dao.hibernate.BaseDaoHibernate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.