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

📄 abstractmanager.java

📁 动态实现基于角色的权限管理Acegi+hibernate
💻 JAVA
字号:
package sample.dao;
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.dao.DataAccessException;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public abstract class AbstractManager extends HibernateDaoSupport {

	private boolean cacheQueries = false;

	private String queryCacheRegion;

	public void setCacheQueries(boolean cacheQueries) {
		this.cacheQueries = cacheQueries;
	}

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

	/**
	 * save the object of entity
	 * @param entity
	 */
	public void save(final Object entity) {
		getHibernateTemplate().save(entity);
	}

	/**
	 * update the object of entity
	 * @param entity
	 */
	public void update(final Object entity) {
		getHibernateTemplate().update(entity);
	}

	/**
	 * delete the object of entity
	 * @param entity
	 */
	public void delete(final Object entity) {
		getHibernateTemplate().delete(entity);
	}

	/**
	 * load a Object from DB by id
	 * @param entity
	 * @param id
	 * @return Object
	 */

	public Object loadByPriKey(final Class entity, final Serializable id) {
		return getHibernateTemplate().load(entity, id);
	}
	/**
	 * get a Object from DB by id
	 * @param entity
	 * @param id
	 * @return Object
	 */
	public Object getByPk(final Class entity, final Serializable id) {
		return getHibernateTemplate().get(entity, id);
	}

	/**
	 * find all rows from the table
	 * @param entity
	 * @return list
	 */
	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 List findAllByCriteria(final DetachedCriteria detachedCriteria) {
		return (List) getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session session)
					throws HibernateException {
				Criteria criteria = detachedCriteria
						.getExecutableCriteria(session);
				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();
	}
	
public Object loadByKey(Class entity, String keyName, Object keyValue)throws DataAccessException {
		
	List result = getHibernateTemplate().find(
			      "from " + entity.getName() + " where " + keyName + " = ?", keyValue);
	if (result != null && result.size() > 0) {
		return result.get(0);
	} else {
		return null;
	}

}

	
	public Criteria getCriteria(final Class entity){
		return (Criteria) getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session session)
					throws HibernateException {
				Criteria criteria = session.createCriteria(entity);
				return criteria;
			}
		}, true);
		
	
	}
	
	public Criteria getCriteriaByDetachedCriteria(final DetachedCriteria detachedCriteria){
		
		return (Criteria) getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session session)
					throws HibernateException {
				Criteria criteria = detachedCriteria.getExecutableCriteria(session);
				return criteria;
			}
		}, true);
		
	}
	
}

⌨️ 快捷键说明

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