T
- Entity
2010-8-9public abstract class BaseDao<T> extends org.springframework.dao.support.DaoSupport implements CTPBaseDao<T>
分页
限定符和类型 | 字段和说明 |
---|---|
protected java.lang.Class<T> |
entityClass
Dao所管理的Entity类型.
|
构造器和说明 |
---|
BaseDao()
在构造函数中将泛型T.class赋给entityClass
|
限定符和类型 | 方法和说明 |
---|---|
int |
bulkUpdate(java.lang.String hql,
java.util.Map<java.lang.String,java.lang.Object> nameParameters,
java.util.List<java.lang.Object> indexParameter)
执行SQL(delete/update),支持命名参数和index参数
|
int |
bulkUpdate(java.lang.String hql,
java.util.Map<java.lang.String,java.lang.Object> nameParameters,
java.lang.Object... indexParameter)
执行SQL(delete/update),支持命名参数和index参数
|
protected void |
checkDaoConfig() |
protected org.springframework.dao.DataAccessException |
convertHibernateAccessException(org.hibernate.HibernateException ex)
Convert the given HibernateException to an appropriate exception from the
org.springframework.dao hierarchy. |
int |
count(java.lang.String hqlStr,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.util.List<java.lang.Object> indexParameter)
给一个普通的查询语句,取出对于的查询总数,如:
select * from table where a=1 and b=2 order c 结果执行的是:select count(*) from table where a=1 and b=2 |
int |
count(java.lang.String hqlStr,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.lang.Object... indexParameter) |
int |
count(java.lang.String hqlStr,
java.lang.String countPropertiesName,
boolean isDistinct,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.lang.Object... indexParameter)
给一个普通的查询语句,取出对于的查询总数,如:
select * from table where a=1 and b=2 order c 结果执行的是:select count(*) from table where a=1 and b=2 |
protected HibernateTemplate |
createHibernateTemplate(org.hibernate.SessionFactory sessionFactory)
Create a HibernateTemplate for the given SessionFactory.
|
void |
delete(long id)
根据主键删除对象.
|
void |
delete(java.lang.Object entity)
删除对象.
|
java.util.List |
executeCriteria(org.hibernate.criterion.DetachedCriteria detachedCriteria)
执行DetachedCriteria,实现自动分页, 并把rowCount注入到Pagination
|
java.util.List |
executeCriteria(org.hibernate.criterion.DetachedCriteria detachedCriteria,
int firstResult,
int maxResults)
执行DetachedCriteria,不自动分页
|
java.lang.Object |
executeUniqueCriteria(org.hibernate.criterion.DetachedCriteria detachedCriteria)
执行DetachedCriteria,只取一条记录
|
java.util.List |
find(java.lang.String hqlStr,
int firstResult,
int maxResults,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.util.List<java.lang.Object> indexParameter)
查询, 不分页。
|
java.util.List |
find(java.lang.String hqlStr,
int firstResult,
int maxResults,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.lang.Object... indexParameter)
查询, 不分页,如果需要分页,请用
CTPBaseDao.find(String, Map, Object[]) |
java.util.List |
find(java.lang.String hqlStr,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.util.List<java.lang.Object> indexParameter)
执行查询,
自动完成分页 ,并把总数设置到Pagination 查找总数的策略是:count(*)如果不分页,请用 CTPBaseDao.find(String, int, int, Map, List) 或CTPBaseDao.find(String, int, int, Map, Object[]) |
java.util.List |
find(java.lang.String hqlStr,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.lang.Object... indexParameter)
执行查询,自动完成分页,并把总数设置到
Pagination ;查找总数的策略是:count(*)如果不分页,请用 CTPBaseDao.find(String, int, int, Map, Object[]) |
java.util.List |
find(java.lang.String hqlStr,
java.lang.String countPropertiesName,
boolean isDistinct,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.util.List<java.lang.Object> indexParameter)
执行查询,自动完成分页,并把总数设置到
Pagination |
java.util.List |
find(java.lang.String hqlStr,
java.lang.String countPropertiesName,
boolean isDistinct,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.lang.Object... indexParameter)
查询
|
java.util.List<T> |
findBy(java.lang.String name,
java.lang.Object value)
根据属性名和属性值查询对象.
|
java.util.List<T> |
findByLike(java.lang.String name,
java.lang.String value)
根据属性名和属性值以Like AnyWhere方式查询对象.
|
java.util.List |
findNativeSQL(java.lang.String nativeSQL,
java.lang.Class entityClass,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.lang.Object... indexParameter)
NativeSQL查询
|
java.util.List<T> |
findSimpleObjects(java.util.List<org.hibernate.criterion.Criterion> criterions,
java.util.List<org.hibernate.criterion.Order> orders,
int firstResult,
int maxResult,
java.lang.String... propertyNames)
按照条件,查询某些字段的数据,不分页
|
java.util.List<T> |
findSimpleObjects(java.util.List<org.hibernate.criterion.Criterion> criterions,
java.util.List<org.hibernate.criterion.Order> orders,
java.lang.String... propertyNames)
按照条件,查询某些字段的数据,自动分页
|
java.lang.Object |
findUnique(java.lang.String hqlStr,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.util.List<java.lang.Object> indexParameter)
查询唯一对象
|
java.lang.Object |
findUnique(java.lang.String hqlStr,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.lang.Object... indexParameter)
查询唯一对象
|
T |
findUniqueBy(java.lang.String name,
java.lang.Object value)
根据属性名和属性值查询对象.
|
java.util.List |
findVarargs(java.lang.String hsql,
java.lang.Object... values)
Execute a query for persistent instances, binding a number of values to
"?"
|
java.util.List |
findWithCount(java.lang.String hqlStr,
java.lang.String countSql,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.util.List<java.lang.Object> indexParameter)
执行查询,自动分页,总数有第二个查询产生
|
java.util.List |
findWithCount(java.lang.String hqlStr,
java.lang.String countSql,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.lang.Object... indexParameter)
执行查询,自动分页,总数有第二个查询产生
|
T |
get(java.lang.Long id)
按照主键获取对象
|
java.util.List<T> |
getAll()
查找表中的所有数据
|
protected int |
getBatchSize() |
int |
getCountByCriteria(org.hibernate.criterion.DetachedCriteria detachedCriteria)
执行count
|
protected java.lang.Class |
getEntityClass()
取得entityClass的函数.
|
HibernateTemplate |
getHibernateTemplate()
Return the HibernateTemplate for this DAO,
pre-initialized with the SessionFactory or set explicitly.
|
org.hibernate.SessionFactory |
getSessionFactory()
Return the Hibernate SessionFactory used by this DAO.
|
T |
getSimpleObject(long id,
java.lang.String... propertyNames)
根据id,取得记录的指定字段
|
void |
save(java.lang.Object o)
保存对象到数据库中
|
void |
savePatchAll(java.util.Collection<? extends java.lang.Object> os)
批量保存,每batch_size条保存并提交一次,然后清空一级缓存
|
void |
setHibernateTemplate(HibernateTemplate hibernateTemplate)
Set the HibernateTemplate for this DAO explicitly,
as an alternative to specifying a SessionFactory.
|
protected void |
setParameters(org.hibernate.Query query,
java.util.Map<java.lang.String,java.lang.Object> namedParameterMap,
java.lang.Object... indexParameter) |
void |
setSessionFactory(org.hibernate.SessionFactory sessionFactory)
Set the Hibernate SessionFactory to be used by this DAO.
|
protected void |
sortCriteria(org.hibernate.Criteria criteria,
java.util.Map sortMap,
java.lang.Object entity)
构造Criteria的排序条件默认函数.可供其他查询函数调用
|
void |
update(java.lang.Object o)
更新所有字段
|
void |
updatePatchAll(java.util.Collection<? extends java.lang.Object> os)
批量保存,每batch_size条保存并提交一次,然后清空一级缓存
|
protected java.lang.Class<T> entityClass
public final void setSessionFactory(org.hibernate.SessionFactory sessionFactory)
CTPBaseDao
setSessionFactory
在接口中 CTPBaseDao<T>
#createHibernateTemplate
,
CTPBaseDao.setHibernateTemplate(com.seeyon.ctp.common.dao.HibernateTemplate)
protected HibernateTemplate createHibernateTemplate(org.hibernate.SessionFactory sessionFactory)
Can be overridden in subclasses to provide a HibernateTemplate instance with different configuration, or a custom HibernateTemplate subclass.
sessionFactory
- the Hibernate SessionFactory to create a HibernateTemplate forsetSessionFactory(org.hibernate.SessionFactory)
public final org.hibernate.SessionFactory getSessionFactory()
CTPBaseDao
getSessionFactory
在接口中 CTPBaseDao<T>
public final void setHibernateTemplate(HibernateTemplate hibernateTemplate)
CTPBaseDao
public final HibernateTemplate getHibernateTemplate()
CTPBaseDao
getHibernateTemplate
在接口中 CTPBaseDao<T>
protected final void checkDaoConfig()
checkDaoConfig
在类中 org.springframework.dao.support.DaoSupport
protected final org.springframework.dao.DataAccessException convertHibernateAccessException(org.hibernate.HibernateException ex)
org.springframework.dao
hierarchy. Will automatically detect
wrapped SQLExceptions and convert them accordingly.
Delegates to the convertHibernateAccessException
method of this DAO's HibernateTemplate.
Typically used in plain Hibernate code, in combination with
getSession
and releaseSession
.
ex
- HibernateException that occuredsetHibernateTemplate(com.seeyon.ctp.common.dao.HibernateTemplate)
,
HibernateAccessor.convertHibernateAccessException(org.hibernate.HibernateException)
protected java.lang.Class getEntityClass()
protected int getBatchSize()
public void save(java.lang.Object o)
CTPBaseDao
save
在接口中 CTPBaseDao<T>
public void savePatchAll(java.util.Collection<? extends java.lang.Object> os)
CTPBaseDao
savePatchAll
在接口中 CTPBaseDao<T>
public void updatePatchAll(java.util.Collection<? extends java.lang.Object> os)
CTPBaseDao
updatePatchAll
在接口中 CTPBaseDao<T>
public void update(java.lang.Object o)
CTPBaseDao
update
在接口中 CTPBaseDao<T>
public T get(java.lang.Long id)
CTPBaseDao
get
在接口中 CTPBaseDao<T>
public java.util.List<T> getAll()
CTPBaseDao
getAll
在接口中 CTPBaseDao<T>
public java.util.List findVarargs(java.lang.String hsql, java.lang.Object... values)
CTPBaseDao
findVarargs
在接口中 CTPBaseDao<T>
hsql
- select id,name from Member where createDate>=? and createDate<=?
public T findUniqueBy(java.lang.String name, java.lang.Object value)
CTPBaseDao
findUniqueBy
在接口中 CTPBaseDao<T>
public java.util.List<T> findBy(java.lang.String name, java.lang.Object value)
CTPBaseDao
findBy
在接口中 CTPBaseDao<T>
public java.util.List<T> findByLike(java.lang.String name, java.lang.String value)
CTPBaseDao
findByLike
在接口中 CTPBaseDao<T>
protected void sortCriteria(org.hibernate.Criteria criteria, java.util.Map sortMap, java.lang.Object entity)
criteria
- Criteria实例.sortMap
- 排序条件.entity
- entity对象,用于使用反射来获取某些属性信息public void delete(long id)
CTPBaseDao
delete
在接口中 CTPBaseDao<T>
id
- 主键.public void delete(java.lang.Object entity)
CTPBaseDao
delete
在接口中 CTPBaseDao<T>
entity
- 实体对象.public java.util.List executeCriteria(org.hibernate.criterion.DetachedCriteria detachedCriteria)
CTPBaseDao
executeCriteria
在接口中 CTPBaseDao<T>
public java.util.List executeCriteria(org.hibernate.criterion.DetachedCriteria detachedCriteria, int firstResult, int maxResults)
CTPBaseDao
executeCriteria
在接口中 CTPBaseDao<T>
firstResult
- 数据行开始位置,从0开始,-1表示不限制maxResults
- 取数据量,-1表示不限制public java.lang.Object executeUniqueCriteria(org.hibernate.criterion.DetachedCriteria detachedCriteria)
CTPBaseDao
executeUniqueCriteria
在接口中 CTPBaseDao<T>
public int getCountByCriteria(org.hibernate.criterion.DetachedCriteria detachedCriteria)
CTPBaseDao
getCountByCriteria
在接口中 CTPBaseDao<T>
public T getSimpleObject(long id, java.lang.String... propertyNames)
CTPBaseDao
getSimpleObject
在接口中 CTPBaseDao<T>
id
- 主键对应的值propertyNames
- 需要读取的字段,不允许为nullpublic java.util.List<T> findSimpleObjects(java.util.List<org.hibernate.criterion.Criterion> criterions, java.util.List<org.hibernate.criterion.Order> orders, java.lang.String... propertyNames)
CTPBaseDao
findSimpleObjects
在接口中 CTPBaseDao<T>
criterions
- 查询条件,可以为null
orders
- 排序,可以为null
propertyNames
- 需要查询的字段public java.util.List<T> findSimpleObjects(java.util.List<org.hibernate.criterion.Criterion> criterions, java.util.List<org.hibernate.criterion.Order> orders, int firstResult, int maxResult, java.lang.String... propertyNames)
CTPBaseDao
findSimpleObjects
在接口中 CTPBaseDao<T>
criterions
- 查询条件,可以为null
orders
- 排序,可以为null
firstResult
- -1表示不限制maxResult
- -1表示不限制propertyNames
- 需要查询的字段public int count(java.lang.String hqlStr, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.util.List<java.lang.Object> indexParameter)
CTPBaseDao
count
在接口中 CTPBaseDao<T>
public int count(java.lang.String hqlStr, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.lang.Object... indexParameter)
count
在接口中 CTPBaseDao<T>
public int count(java.lang.String hqlStr, java.lang.String countPropertiesName, boolean isDistinct, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.lang.Object... indexParameter)
CTPBaseDao
count
在接口中 CTPBaseDao<T>
public java.util.List find(java.lang.String hqlStr, int firstResult, int maxResults, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.util.List<java.lang.Object> indexParameter)
CTPBaseDao
CTPBaseDao.find(String, Map, List)
find
在接口中 CTPBaseDao<T>
firstResult
- -1表示不限制maxResults
- -1表示不限制namedParameterMap
- 可以为null
,自动识别参数Collection
和Object[]
CTPBaseDao.find(String, int, int, Map, Object...)
public java.util.List find(java.lang.String hqlStr, int firstResult, int maxResults, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.lang.Object... indexParameter)
CTPBaseDao
CTPBaseDao.find(String, Map, Object[])
find
在接口中 CTPBaseDao<T>
firstResult
- -1表示不限制maxResults
- -1表示不限制namedParameterMap
- 命名参数:可以为null
,自动识别参数Collection
和Object[]
indexParameter
- 位置参数CTPBaseDao.find(String, int, int, Map, List)
,
CTPBaseDao.find(String, Map, List)
,
CTPBaseDao.find(String, Map, Object...)\
public java.util.List find(java.lang.String hqlStr, java.lang.String countPropertiesName, boolean isDistinct, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.util.List<java.lang.Object> indexParameter)
CTPBaseDao
Pagination
find
在接口中 CTPBaseDao<T>
countPropertiesName
- 统计总数的字段isDistinct
- 是否需要distinctnamedParameterMap
- 命名参数:可以为null
,自动识别参数Collection
和Object[]
indexParameter
- 位置参数public java.util.List find(java.lang.String hqlStr, java.lang.String countPropertiesName, boolean isDistinct, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.lang.Object... indexParameter)
CTPBaseDao
find
在接口中 CTPBaseDao<T>
hqlStr
- HQL语句countPropertiesName
- 分页,统计字段isDistinct
- 针对统计字段是否需要采用Distinct
namedParameterMap
- 命名参数:可以为null
,自动识别参数Collection
和Object[]
indexParameter
- 位置参数public java.util.List find(java.lang.String hqlStr, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.util.List<java.lang.Object> indexParameter)
CTPBaseDao
自动完成分页
,并把总数设置到Pagination
查找总数的策略是:count(*)CTPBaseDao.find(String, int, int, Map, List)
或CTPBaseDao.find(String, int, int, Map, Object[])
find
在接口中 CTPBaseDao<T>
namedParameterMap
- 命名参数:可以为null
,自动识别参数Collection
和Object[]
indexParameter
- 位置参数CTPBaseDao.find(String, Map, Object[])
,
CTPBaseDao.find(String, int, int, Map, List)
,
CTPBaseDao.find(String, int, int, Map, Object...)
public java.util.List find(java.lang.String hqlStr, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.lang.Object... indexParameter)
CTPBaseDao
Pagination
;查找总数的策略是:count(*)CTPBaseDao.find(String, int, int, Map, Object[])
find
在接口中 CTPBaseDao<T>
namedParameterMap
- 命名参数:可以为null
,自动识别参数Collection
和Object[]
indexParameter
- 位置参数CTPBaseDao.find(String, Map, List)
public java.util.List findNativeSQL(java.lang.String nativeSQL, java.lang.Class entityClass, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.lang.Object... indexParameter)
CTPBaseDao
findNativeSQL
在接口中 CTPBaseDao<T>
nativeSQL
- HQL语句entityClass
- 查询实体类namedParameterMap
- 命名参数:可以为null
,自动识别参数Collection
和Object[]
indexParameter
- 位置参数public java.lang.Object findUnique(java.lang.String hqlStr, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.util.List<java.lang.Object> indexParameter)
CTPBaseDao
findUnique
在接口中 CTPBaseDao<T>
namedParameterMap
- 自动识别参数Collection
和Object[]
CTPBaseDao.findUnique(String, Map, Object[])
public java.lang.Object findUnique(java.lang.String hqlStr, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.lang.Object... indexParameter)
CTPBaseDao
findUnique
在接口中 CTPBaseDao<T>
namedParameterMap
- 自动识别参数Collection
和Object[]
CTPBaseDao.findUnique(String, Map, List)
protected void setParameters(org.hibernate.Query query, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.lang.Object... indexParameter)
public int bulkUpdate(java.lang.String hql, java.util.Map<java.lang.String,java.lang.Object> nameParameters, java.util.List<java.lang.Object> indexParameter)
CTPBaseDao
bulkUpdate
在接口中 CTPBaseDao<T>
nameParameters
- 命名(用:name) 的参数indexParameter
- 顺序(用?的)参数CTPBaseDao.bulkUpdate(String, Map, Object[])
public int bulkUpdate(java.lang.String hql, java.util.Map<java.lang.String,java.lang.Object> nameParameters, java.lang.Object... indexParameter)
CTPBaseDao
bulkUpdate
在接口中 CTPBaseDao<T>
hql
- HQL语句nameParameters
- 命名(用:name) 的参数indexParameter
- 顺序(用?的)参数CTPBaseDao.bulkUpdate(String, Map, List)
public java.util.List findWithCount(java.lang.String hqlStr, java.lang.String countSql, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.lang.Object... indexParameter)
CTPBaseDao
findWithCount
在接口中 CTPBaseDao<T>
hqlStr
- 查询语句countSql
- 总数查询语句indexParameter
- CTPBaseDao.findWithCount(String, String, Map, List)
public java.util.List findWithCount(java.lang.String hqlStr, java.lang.String countSql, java.util.Map<java.lang.String,java.lang.Object> namedParameterMap, java.util.List<java.lang.Object> indexParameter)
CTPBaseDao
findWithCount
在接口中 CTPBaseDao<T>
hqlStr
- 查询语句countSql
- 总数查询语句indexParameter
- CTPBaseDao.findWithCount(String, String, Map, Object...)