⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractentitydao.java

📁 一个成熟的论坛
💻 JAVA
字号:
package com.singnet.dao.hibernate;

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

import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.singnet.data.PageData;


public abstract class AbstractEntityDAO extends HibernateDaoSupport {
	
	private boolean cacheQueries = true;
	private String queryCacheRegion;

	public void setQueryCacheRegion(String queryCacheRegion) {
		this.queryCacheRegion = queryCacheRegion;
	}

	public void setCacheQueries(boolean cacheQueries) {
		this.cacheQueries = cacheQueries;
	}
	
	public void save(final Object entity) {
		getHibernateTemplate().save(entity);
	}
	
	public Object saveOrUpdate(final Object entity) {
		getHibernateTemplate().saveOrUpdate(entity);
		return entity;
	}
	
	public void saveOrUpdateAll(final List entityList) {
		getHibernateTemplate().saveOrUpdateAll(entityList);
	}
	
	public void delete(final Object entity) {
		getHibernateTemplate().delete(entity);
	}
	
	public void deleteAll(final List entityList) {
		getHibernateTemplate().deleteAll(entityList);
	}
	
	public Object load(final Class entity, final Serializable id) { 
        return getHibernateTemplate().load(entity, id); 
	} 
	
	public Object get(final Class entity, final Serializable id) { 
        return getHibernateTemplate().get(entity, id); 
	} 
	
	public List findAll(final Class entity) { 
        return getHibernateTemplate().find("from " + entity.getName()); 
	} 

	public List findByNamedQuery(final String namedQuery) { 
         return getHibernateTemplate().findByNamedQuery(namedQuery); 
    } 
	
	public List findByNamedQuery(final String query, final Object parameter) { 
        return getHibernateTemplate().findByNamedQuery(query, parameter); 
	} 
	
	public List findByNamedQuery(final String query, final Object[] parameters) { 
        return getHibernateTemplate().findByNamedQuery(query, parameters); 
	} 

	public List find(final String query) { 
        return getHibernateTemplate().find(query); 
	} 
	
	public List find(final String query, final Object parameter) { 
        return getHibernateTemplate().find(query, parameter); 
	} 
	
//	public PageData findPageByCriteria(final DetachedCriteria detachedCriteria) { 
//        return findPageByCriteria(detachedCriteria, PageData.PAGE_SIZE, 0); 
//	} 
//
//	public PageData findPageByCriteria(final DetachedCriteria detachedCriteria, final int startIndex) { 
//        return findPageByCriteria(detachedCriteria, PagesSupport.PAGE_SIZE, startIndex); 
//	} 
	
	public PageData findPageByCriteria(final DetachedCriteria detachedCriteria, final int pageSize, 
        final int startIndex) { 
		return (PageData) getHibernateTemplate().execute(new HibernateCallback() { 
            public Object doInHibernate(Session session) throws HibernateException { 
                    Criteria criteria = detachedCriteria.getExecutableCriteria(session); 
                    int totalCount = ((Integer) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); 
                    criteria.setProjection(null); 
                    criteria.setCacheable(true);
                    List items = criteria.setFirstResult(startIndex > totalCount ? totalCount - pageSize : startIndex)
                    .setMaxResults(pageSize).list(); 
                    PageData ps = new PageData(items, totalCount, pageSize, startIndex); 
                    return ps; 
            } 
		}, true); 
	}
	
	public List findAllByCriteria(final DetachedCriteria detachedCriteria) { 
        return (List) getHibernateTemplate().execute(new HibernateCallback() { 
                public Object doInHibernate(Session session) throws HibernateException { 
                	    
                        Criteria criteria = detachedCriteria.getExecutableCriteria(session); 
                        criteria.setCacheable(cacheQueries);
                        return criteria.list(); 
                } 
        }, true); 
	} 

	public int getCountByCriteria(final DetachedCriteria detachedCriteria) { 
        Integer count = (Integer) getHibernateTemplate().execute(new HibernateCallback() { 
                public Object doInHibernate(Session session) throws HibernateException { 
                        Criteria criteria = detachedCriteria.getExecutableCriteria(session); 
                        return criteria.setProjection(Projections.rowCount()).uniqueResult(); 
                } 
        }, true); 
        return count.intValue(); 
	} 



}

⌨️ 快捷键说明

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