package com.jshoperx.dao; import java.io.Serializable; import java.util.List; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Order; public interface BaseTDao<T> { /** * 持久化对象 * @param t */ public void save(T t); /** * 根据持久化对象的主键获取对象 * @param id * @return */ public T findByPK(Class<T> t, Serializable id); /** * 获得一个对象 * @param hql * @param param * @return */ public T getByHql(String hql, Object[] param); /** * 查询单个对象 * @param t * @param id * @return */ public T get(Class<T> t, Serializable id); /** * 保存多个对象 * @param t */ public void saveOrUpdateAll(List<T> t); /** * 保存或者更新单个对象 * @param t */ public void saveOrUpdate(T t); /** * 更新持久化对象 * @param t */ public void update(T t); /** * 删除持久化对象 * @param t */ public void delete(T t); /** * 批量删除持久化对象 * @param ids */ public void deleteAll(List<T> param); /** * 根据状态查询所有数据 * @param t * @param status * @return */ public List<T>findAll(Class<T> t, String status); /** * 查询所有数据 * @param t * @return */ public List<T>findAll(Class<T> t); /** * 分页查询所有记录 * @param t * @param currentPage * @param lineSize * @return */ public List<T>findAll(Class<T> t, int currentPage, int lineSize); /** * 查询记录总数 * @param t * @return */ public int countfindAll(Class<T> t); /** * 根据店铺Id分页查询信息 * @param t * @param currentPage * @param lineSize * @return */ public List<T>findAllByShopId(Class<T> t, String shopId, int currentPage, int lineSize); /** * 统计根据店铺Id分页查询信息 * @param t * @param shopId * @return */ public int countfindAllByShopId(Class<T> t, String shopId); /** * 根据hql查询 * @param hql * @return */ public List<T> findByHql(String hql); /** * 根据hql查询集合 * @param hql * @param param * @return */ public List<T>findByHql(String hql, Object[] param); /** * 根据hql查询集合 * @param hql * @param param * @return */ public List<T>findByHql(String hql, List<Object> param); /** * 根据hql分页查询 * @param hql * @param param * @param currentPage * @param lineSize * @return */ public List<T>findByHqlByPage(String hql, Object[] param, int currentPage, int lineSize); /** * 根据hql分页查询 * @param hql * @param param * @param currentPage * @param lineSize * @return */ public List<T>findByHqlByPage(String hql, List<Object> param, int currentPage, int lineSize); /** * 根据hql查询记录总数 * @param hql * @return */ public Long count(String hql); /** * 根据参数通过hql查询记录总数 * @param hql * @param param * @return */ public Long count(String hql, Object[] param); /** * 根据参数通过hql查询记录总数 * @param hql * @param param * @return */ public Long count(String hql, List<Object> param); /** * 执行hql返回的结果集大小 * @param hql * @return */ public Integer executeHql(String hql); /** * 执行hql返回的结果集大小 * @param hql * @param param * @return */ public Integer executeHql(String hql, Object[] param); /** * 执行hql返回的结果集大小 * @param hql * @param param * @return */ public Integer executeHql(String hql, List<Object> param); /** * 根据条件查询纪录总数 * @param t * @param criterion * @return */ public Long count(Class<T> t, Criterion criterion); /** * 查询纪录总数 * @param t * @return */ public Long count(Class<T> t); /** * 根据criterion和order查询数据结果 * @param t * @param criterion * @param order * @return */ public List<T>findByCriteria(Class<T> t, Criterion criterion, Order order); /** * 根据criteria分页查询结果 * @param t * @param criterion * @param order * @param currentPage * @param lineSize * @return */ public List<T>findByCriteriaByPage(Class<T> t, Criterion criterion, Order order, int currentPage, int lineSize); /** * 分页查询信息 * @param t * @param order * @param currentPage * @param lineSize * @return */ public List<T>findByCriteriaByPage(Class<T> t, Order order, int currentPage, int lineSize); /** * 根据criterion查询单个数据 * @param t * @param criterion * @return */ public T findOneByCriteria(Class<T> t, Criterion criterion); /** * 根据criterion查询数据结果 * @param t * @param criterion * @return */ public List<T>findByCriteria(Class<T> t, Criterion criterion); }