Hibernate 数据库操作 模板基类 GenericDao
packagecom.ddhome.dao;
importjava.io.Serializable;
importjava.util.Collection;
importjava.util.Iterator;
importjava.util.List;
importorg.hibernate.Criteria;
importorg.hibernate.LockMode;
importorg.hibernate.criterion.DetachedCriteria;
/**
*
*@authortxc
*/
publicabstractinterfaceGenericDao{
//--------------------基本检索、增加、修改、删除操作--------------------
//根据主键获取实体。如果没有相应的实体,返回null。
publicTget(PKid);
//根据主键获取实体并加锁。如果没有相应的实体,返回null。
publicTgetWithLock(PKid,LockModelock);
//根据主键获取实体。如果没有相应的实体,抛出异常。
publicTload(PKid);
//根据主键获取实体并加锁。如果没有相应的实体,抛出异常。
publicTloadWithLock(PKid,LockModelock);
//获取全部实体。
publicListloadAll();
//loadAllWithLock()?
//更新实体
publicvoidupdate(Tentity);
//更新实体并加锁
publicvoidupdateWithLock(Tentity,LockModelock);
//存储实体到数据库
publicvoidsave(Tentity);
//saveWithLock()
//增加或更新实体
publicvoidsaveOrUpdate(Tentity);
//增加或更新集合中的全部实体
publicvoidsaveOrUpdateAll(Collectionentities);
//删除指定的实体
publicvoiddelete(Tentity);
//加锁并删除指定的实体
publicvoiddeleteWithLock(Tentity,LockModelock);
//根据主键删除指定实体
publicvoiddeleteByKey(PKid);
//根据主键加锁并删除指定的实体
publicvoiddeleteByKeyWithLock(PKid,LockModelock);
//删除集合中的全部实体
publicvoiddeleteAll(Collectionentities);
//--------------------HSQL----------------------------------------------
//使用HSQL语句直接增加、更新、删除实体
publicintbulkUpdate(StringqueryString);
//使用带参数的HSQL语句增加、更新、删除实体
publicintbulkUpdate(StringqueryString,Object[]values);
//使用HSQL语句检索数据
publicListfind(StringqueryString);
//使用HSQL语句检索数据,分页
publicListfind(StringqueryString,Object[]values,intstart,intlimit);
publicintgetRow(finalStringqueryString,finalObject[]values);
//使用带命名的参数的HSQL语句检索数据
publicListfindByNamedParam(StringqueryString,String[]paramNames,
Object[]values);
//使用命名的HSQL语句检索数据
publicListfindByNamedQuery(StringqueryName);
//使用带参数的命名HSQL语句检索数据
publicListfindByNamedQuery(StringqueryName,Object[]values);
//使用带命名参数的命名HSQL语句检索数据
publicListfindByNamedQueryAndNamedParam(StringqueryName,
String[]paramNames,Object[]values);
//使用HSQL语句检索数据,返回Iterator
publicIteratoriterate(StringqueryString);
//使用带参数HSQL语句检索数据,返回Iterator
publicIteratoriterate(StringqueryString,Object[]values);
//关闭检索返回的Iterator
publicvoidcloseIterator(Iteratorit);
//--------------------------------Criteria------------------------------
//创建与会话无关的检索标准对象
publicDetachedCriteriacreateDetachedCriteria();
//创建与会话绑定的检索标准对象
publicCriteriacreateCriteria();
//使用指定的检索标准检索数据
publicListfindByCriteria(DetachedCriteriacriteria);
//使用指定的检索标准检索数据,返回部分记录
publicListfindByCriteria(DetachedCriteriacriteria,intfirstResult,
intmaxResults);
//使用指定的实体及属性检索(满足除主键外属性=实体值)数据
publicListfindEqualByEntity(Tentity,String[]propertyNames);
publicTfindUniqueEqualByEntity(Tentity,String[]propertyNames);
publicTfindUniqueByCriteria(DetachedCriteriacriteria);
publicListfindEqualByEntity(Tentity,String[]propertyNames,intfromIdx,intfetchCount);
//使用指定的实体及属性(非主键)检索(满足属性like串实体值)数据
publicListfindLikeByEntity(Tentity,String[]propertyNames);
//使用指定的检索标准检索数据,返回指定范围的记录
publicIntegergetRowCount(DetachedCriteriacriteria);
//使用指定的检索标准检索数据,返回指定统计值
publicObjectgetStatValue(DetachedCriteriacriteria,StringpropertyName,
StringStatName);
//--------------------------------Others--------------------------------
//加锁指定的实体
publicvoidlock(Tentity,LockModelockMode);
//强制初始化指定的实体
publicvoidinitialize(Objectproxy);
//强制立即更新缓冲数据到数据库(否则仅在事务提交时才更新)
publicvoidflush();
}