All pastes #592051 Raw Edit

Diego

public java v1 · immutable
#592051 ·published 2007-06-27 15:29 UTC
rendered paste body
package com.zelfs.itbeganin.dao.impl;import java.io.Serializable;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import java.util.List;import org.hibernate.Criteria;import org.hibernate.LockMode;import org.hibernate.criterion.Criterion;import org.hibernate.criterion.Order;import org.hibernate.criterion.Projections;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.zelfs.itbeganin.BusinessObject;import com.zelfs.itbeganin.dao.BusinessObjectDao;public class BusinessObjectDaoHibernateImpl extends HibernateDaoSupport implements BusinessObjectDao  {		protected final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory	.getLog(getClass());	public void save(BusinessObject entity) {		getHibernateTemplate().save(entity);	}	public void saveOrUpdate(BusinessObject entity) {		getHibernateTemplate().saveOrUpdate(entity);	}	public BusinessObject merge(BusinessObject entity) {		return (BusinessObject) getHibernateTemplate().merge(entity);	}	public void delete(BusinessObject entity) {		getHibernateTemplate().delete(entity);			}	public <T extends BusinessObject>   void deleteById(Class<T> boClass, Serializable id) {		delete(findById(boClass, id));			}	@SuppressWarnings("unchecked")	public <T extends BusinessObject>  T findById(Class<T> boClass, Serializable id) {		return (T) getSession().get(boClass, id);	}	@SuppressWarnings("unchecked")	public <T extends BusinessObject>  Iterator<T> iterate(Class<T> boClass) {		return getHibernateTemplate().iterate("from " + boClass.getName());	}	@SuppressWarnings("unchecked")	public <T extends BusinessObject> List<T> list(Class<T> boClass) {		Criteria criteria = getSession().createCriteria(boClass);		return criteria.list();	}		@SuppressWarnings("unchecked")	public <T extends BusinessObject> List<T> list(Class<T> boClass, Order order) {		Criteria criteria = getSession().createCriteria(boClass);		criteria.addOrder(order);		return criteria.list();	}	public <T extends BusinessObject> int count(Class<T> boClass){		Criteria criteria = getSession().createCriteria(boClass); 		criteria.setProjection(Projections.rowCount()); 		return (Integer)criteria.list().get(0);	}		@SuppressWarnings("unchecked")	public <T extends BusinessObject>  List<T> list(Class<T> boClass, Criterion criterion, List<Order> orders) {		Criteria criteria = getSession().createCriteria(boClass);		criteria.add(criterion);		for (Order order : orders) {			criteria.addOrder(order);		}		List list = criteria.list();		return  list;	}		public <T extends BusinessObject>  List<T> list(Class<T> boClass, Criterion criterion, Order order) {		List<Criterion> criterions = new ArrayList<Criterion>();		List<Order> orders = new ArrayList<Order>();		criterions.add(criterion);		if (order!=null) {			orders.add(order);		}		return list(boClass, criterion, orders);	}	public <T extends BusinessObject> List<T> list(Class<T> boClass, Criterion criterion) {				return list(boClass, criterion, new ArrayList<Order>());	}	public void delete(Collection<? extends BusinessObject> entities) {		for (BusinessObject object : entities) {			delete(object);		}	}	public void save(Collection<? extends BusinessObject> entities) {		for (BusinessObject object : entities) {			save(object);		}	}		public <T extends BusinessObject> Iterator<T> iterate(Class<T> boClass, int first, int count, String property, boolean ascending) {		return list(boClass, first, count, property, ascending).iterator();	}	@SuppressWarnings("unchecked")	public <T extends BusinessObject> List<T> list(Class<T> boClass, int first, int count, String property, boolean ascending) {		Criteria crit = getSession().createCriteria(boClass);		Order order;				if(ascending)			order = Order.asc(property);		else			order = Order.desc(property);				crit.addOrder(order);		crit.setFirstResult(first);		crit.setMaxResults(count);				return crit.list();	}	public void update(BusinessObject bo) {		getHibernateTemplate().update(bo);			}	/**	 * Reattachs an object to an open session. 	 */	public void reattach( BusinessObject model ){		getSession().refresh( model, LockMode.NONE );	}		}