org.springside.core.dao
类 HibernateGenericDao

java.lang.Object
  继承者 HibernateDaoSupport
      继承者 org.springside.core.dao.HibernateGenericDao
直接已知子类:
HibernateEntityDao

public class HibernateGenericDao
extends HibernateDaoSupport

Hibernate Dao的泛型基类.

继承于Spring的HibernateDaoSupport,提供分页函数和若干便捷查询方法,并对返回值作了泛型类型转换.

作者:
calvin, tin
另请参见:
HibernateDaoSupport, HibernateEntityDao

构造函数摘要
HibernateGenericDao()
           
 
方法摘要
 java.util.List find(java.lang.String hql, java.lang.Object... values)
          hql查询.
<T> java.util.List<T>
findBy(java.lang.Class<T> entityClass, java.lang.String name, java.lang.Object value)
          根据属性名和属性值查询对象.
<T> java.util.List<T>
findByLike(java.lang.Class<T> entityClass, java.lang.String name, java.lang.String value)
          根据属性名和属性值以Like AnyWhere方式查询对象.
<T> T
findUniqueBy(java.lang.Class<T> entityClass, java.lang.String name, java.lang.Object value)
          根据属性名和属性值查询唯一对象.
<T> T
get(java.lang.Class<T> entityClass, java.io.Serializable id)
          根据ID获取对象
<T> java.util.List<T>
getAll(java.lang.Class<T> entityClass)
          获取全部对象
<T> Criteria
getCriteria(java.lang.Class<T> entityClass, Criterion... criterion)
          创建Criteria对象
 java.lang.String getIdName(java.lang.Class entityClass)
           
 Query getQuery(java.lang.String hql, java.lang.Object... values)
          创建Query对象.
<T> boolean
isNotUnique(java.lang.Class<T> entityClass, java.lang.Object entity, java.lang.String names)
          判断对象某些属性的值在数据库中不存在重复
 Page pagedQuery(java.lang.Class entityClass, int pageNo, int pageSize, Criterion... criterion)
          分页查询函数,使用Criteria.
 Page pagedQuery(Criteria criteria, int pageNo, int pageSize)
          分页查询函数,使用Criteria.
 Page pagedQuery(java.lang.String hql, int pageNo, int pageSize, java.lang.Object... values)
          分页查询函数,使用hql.
 void remove(java.lang.Object o)
          删除对象
<T> void
removeById(java.lang.Class<T> entityClass, java.io.Serializable id)
          根据ID删除对象
 void save(java.lang.Object o)
          保存对象
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造函数详细信息

HibernateGenericDao

public HibernateGenericDao()
方法详细信息

get

public <T> T get(java.lang.Class<T> entityClass,
                 java.io.Serializable id)
根据ID获取对象


getAll

public <T> java.util.List<T> getAll(java.lang.Class<T> entityClass)
获取全部对象


save

public void save(java.lang.Object o)
保存对象


remove

public void remove(java.lang.Object o)
删除对象


removeById

public <T> void removeById(java.lang.Class<T> entityClass,
                           java.io.Serializable id)
根据ID删除对象


getQuery

public Query getQuery(java.lang.String hql,
                      java.lang.Object... values)
创建Query对象. 对于需要first,max,fetchsize,cache,cacheRegion等诸多设置的函数,可以返回Query后自行设置. 留意可以连续设置,如 dao.getQuery(hql).setMaxResult(100).setCacheable(true).list();

参数:
values - 可变参数 用户可以如下四种方式使用 dao.getQuery(hql) dao.getQuery(hql,arg0); dao.getQuery(hql,arg0,arg1); dao.getQuery(hql,new Object[arg0,arg1,arg2])

getCriteria

public <T> Criteria getCriteria(java.lang.Class<T> entityClass,
                                Criterion... criterion)
创建Criteria对象

参数:
criterion - 可变条件列表,Restrictions生成的条件

find

public java.util.List find(java.lang.String hql,
                           java.lang.Object... values)
hql查询.

参数:
values - 可变参数 用户可以如下四种方式使用 dao.find(hql) dao.find(hql,arg0); dao.find(hql,arg0,arg1); dao.find(hql,new Object[arg0,arg1,arg2])

findBy

public <T> java.util.List<T> findBy(java.lang.Class<T> entityClass,
                                    java.lang.String name,
                                    java.lang.Object value)
根据属性名和属性值查询对象.

返回:
符合条件的对象列表

findUniqueBy

public <T> T findUniqueBy(java.lang.Class<T> entityClass,
                          java.lang.String name,
                          java.lang.Object value)
根据属性名和属性值查询唯一对象.

返回:
符合条件的唯一对象

findByLike

public <T> java.util.List<T> findByLike(java.lang.Class<T> entityClass,
                                        java.lang.String name,
                                        java.lang.String value)
根据属性名和属性值以Like AnyWhere方式查询对象.


isNotUnique

public <T> boolean isNotUnique(java.lang.Class<T> entityClass,
                               java.lang.Object entity,
                               java.lang.String names)
判断对象某些属性的值在数据库中不存在重复

参数:
names - 在POJO里不能重复的属性列表,以逗号分割 如"name,loginid,password"

getIdName

public java.lang.String getIdName(java.lang.Class entityClass)

pagedQuery

public Page pagedQuery(java.lang.Class entityClass,
                       int pageNo,
                       int pageSize,
                       Criterion... criterion)
分页查询函数,使用Criteria.

参数:
pageNo - 页号,从1开始.

pagedQuery

public Page pagedQuery(Criteria criteria,
                       int pageNo,
                       int pageSize)
分页查询函数,使用Criteria.

参数:
pageNo - 页号,从1开始.

pagedQuery

public Page pagedQuery(java.lang.String hql,
                       int pageNo,
                       int pageSize,
                       java.lang.Object... values)
分页查询函数,使用hql.

参数:
pageNo - 页号,从0开始.