import java.io.Serializable;
import java.util.List;
import javax.persistence.LockModeType;
import Filter;
import Order;
import Page;
import Pageable;
/**
* Dao - 基类
*
* @author Sencloud Team
* @version 3.0
*/
public interface BaseDao<T, ID extends Serializable>
{
/**
* 查找实体对象
*
* @param id ID
* @return 实体对象,若不存在则返回null
*/
T find(ID id);
/**
* 查找实体对象
*
* @param id ID
* @param lockModeType 锁定方式
* @return 实体对象,若不存在则返回null
*/
T find(ID id, LockModeType lockModeType);
/**
* 查找实体对象集合
*
* @param first 起始记录
* @param count 数量
* @param filters 筛选
* @param orders 排序
* @return 实体对象集合
*/
List<T> findList(Integer first, Integer count, List<Filter> filters, List<Order> orders);
/**
* 查找实体对象分页
*
* @param pageable 分页信息
* @return 实体对象分页
*/
Page<T> findPage(Pageable pageable);
/**
* 查询实体对象数量
*
* @param filters 筛选
* @return 实体对象数量
*/
long count(Filter... filters);
/**
* 持久化实体对象
*
* @param entity 实体对象
*/
void persist(T entity);
/**
* 合并实体对象
*
* @param entity 实体对象
* @return 实体对象
*/
T merge(T entity);
/**
* 保存&更新实体对象
*
* @param entity 实体对象
* @return 实体对象
*/
T saveOrUpdate(T entity);
/**
* 移除实体对象
*
* @param entity 实体对象
*/
void remove(T entity);
/**
* 刷新实体对象
*
* @param entity 实体对象
*/
void refresh(T entity);
/**
* 刷新实体对象
*
* @param entity 实体对象
* @param lockModeType 锁定方式
*/
void refresh(T entity, LockModeType lockModeType);
/**
* 获取实体对象ID
*
* @param entity 实体对象
* @return 实体对象ID
*/
ID getIdentifier(T entity);
/**
* 判断是否为托管状态
*
* @param entity 实体对象
* @return 是否为托管状态
*/
boolean isManaged(T entity);
/**
* 设置为游离状态
*
* @param entity 实体对象
*/
void detach(T entity);
/**
* 锁定实体对象
*
* @param entity 实体对象
* @param lockModeType 锁定方式
*/
void lock(T entity, LockModeType lockModeType);
/**
* 清除缓存
*/
void clear();
/**
* 同步数据
*/
void flush();
/**<span style="white-space:pre"> </span>
* 批量更新
**/
void batchUpdate(List<T> list);
}
J2EE-BaseDao.java
最新推荐文章于 2017-11-02 16:05:15 发布