package com.autoabacus.core.dao;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.LockMode;
import org.hibernate.Query;
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;
@SuppressWarnings("unchecked")
public class HBGenericDao<T, ID extends Serializable> extends HibernateDaoSupport implements IGenericDao<T,ID> {
private Log logger = LogFactory.getLog(getClass());
protected Class<T> entityClass;
public HBGenericDao() {
}
protected Class getEntityClass() {
if (entityClass == null) {
entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
logger.debug("T class = " + entityClass.getName());
}
return entityClass;
}
public void saveOrUpdate(T t) throws DataAccessException {
this.getHibernateTemplate().saveOrUpdate(t);
}
public T load(ID id) throws DataAccessException {
T load = (T) getHibernateTemplate().load(getEntityClass(), id);
return load;
}
public T get(ID id) throws DataAccessException {
T load = (T) getHibernateTemplate().get(getEntityClass(), id);
return load;
}
public boolean contains(T t) throws DataAccessException {
return getHibernateTemplate().contains(t);
}
public void delete(T t, LockMode lockMode) throws DataAccessException {
getHibernateTemplate().delete(t, lockMode);
}
public void delete(T t) throws DataAccessException {
getHibernateTemplate().delete(t);
}
public void deleteAll(Collection<T> entities) throws DataAccessException {
getHibernateTemplate().deleteAll(entities);
}
public List<T> find(String queryString, Object value) throws DataAccessException {
List<T> find = (List<T>) getHibernateTemplate().find(queryString, value);
return find;
}
public List<T> find(String queryString, Object[] values) throws DataAccessException {
List<T> find = (List<T>) getHibernateTemplate().find(queryString, values);
return find;
}
public List<T> find(String queryString) throws DataAccessException {
return (List<T>) getHibernateTemplate().find(queryString);
}
public void refresh(T t, LockMode lockMode) throws DataAccessException {
getHibernateTemplate().refresh(t, lockMode);
}
public void refresh(T t) throws DataAccessException {
getHibernateTemplate().refresh(t);
}
public Serializable save(T t) throws DataAccessException {
return getHibernateTemplate().save(t);
}
public void saveOrUpdateAll(Collection<T> entities) throws DataAccessException {
getHibernateTemplate().saveOrUpdateAll(entities);
}
public void update(T t, LockMode lockMode) throws DataAccessException {
getHibernateTemplate().update(t, lockMode);
}
public void update(T t) throws DataAccessException {
getHibernateTemplate().update(t);
}
public List<T> list() throws DataAccessException {
return getHibernateTemplate().loadAll(getEntityClass());
}
public List<T> findByNamedQuery(String queryName) throws DataAccessException {
return getHibernateTemplate().findByNamedQuery(queryName);
}
public List<T> findByNamedQuery(String queryName, Object value) throws DataAccessException {
return getHibernateTemplate().findByNamedQuery(queryName, value);
}
public List<T> findByNamedQuery(String queryName, Object[] values) throws DataAccessException {
return getHibernateTemplate().findByNamedQuery(queryName, values);
}
}
分享到:
相关推荐
Struts+Hiberbate项目创建过程
个人认为还算挺详细的一hibernate4学习笔记,适合入门
很好的Hibernate教程,帮助你很好的掌握Hibernate
JSp+Hiberbate+MySql写的Blog,其中还有不少WEB2.0的东西,我看了好多遍。自己依照程序做了不少功能。 感觉进步很快。特别是Hiberbate对数据库的操作,很适合初学都理解MVC模式。
Hiberbate增删改查的例子简单的有分面。简单的,
jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包
利用Eclipse开发Hibernate应用程序
一个很好的学习文档,可以更快更好的将hql语句学好,内将hql的各种方法一一例出
Hiberbate 3延迟加载(Lazy)介绍
一个自己学习hibernate的一些好的资料,归档在一起了
IDEA下 MAVEN控制 Struts2.5.22+Spring5.3.10+Hiberbate5.6.15 SSH简单整合开发的源码包。
适合初学者,里面的代码非常简单,通俗易懂。相信能够对你的编程技术有所帮助。
由于上传大小限制所以项目没有上传jar包 请自己添加上面的框架所用到得jar包
一个简单的基于sring+hiberbate+struts2的人员管理系统,myeclipse直接加入就可以用
基于J2EE的网上书店系统,实现用户注册,登陆,图书展示,购物车管理,订单生成等功能
hibernate的基础教程,帮你更快掌握持久化层的技术。
这个是上一个文件也就是hibernate+spring+struts框架的中的java的一些base代码,基本的base类,如通过id找对象,通过id查找集合等等。jar就是上一个hibernate+spring+struts2框架jar包文件,有需要可以自行下载,很...
springSpringMvcHiberbateEasyWorkFramedemo含数据库、jar包可直接运行,没有过多的烦恼。希望能帮助大家
hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-...
NULL 博文链接:https://xiaojianhx.iteye.com/blog/1744681