📄 abstractentitydao.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 + -