package com.aggrepoint.dao; import java.io.Serializable; import java.util.List; import org.hibernate.ReplicationMode; import org.hibernate.criterion.DetachedCriteria; import org.springframework.dao.DataAccessException; /** * @see org.springframework.orm.hibernate3.HibernateOperations * @author Jiangming Yang (yangjm@gmail.com) */ public interface HibernateDao<T> { void clear() throws DataAccessException; boolean contains(T entity) throws DataAccessException; void evict(Object entity) throws DataAccessException; List<T> find(String queryString) throws DataAccessException; List<T> find(String queryString, Object value) throws DataAccessException; List<T> find(String queryString, Object... values) throws DataAccessException; List<T> findByCriteria(DetachedCriteria criteria) throws DataAccessException; List<T> findByCriteria(DetachedCriteria criteria, int firstResult, int maxResults) throws DataAccessException; List<T> findByNamedParam(String queryString, String paramName, Object value) throws DataAccessException; List<T> findByNamedParam(String queryString, String[] paramNames, Object[] values) throws DataAccessException; List<T> findByNamedQuery(String queryName) throws DataAccessException; List<T> findByNamedQuery(String queryName, Object value) throws DataAccessException; List<T> findByNamedQuery(String queryName, Object... values) throws DataAccessException; List<T> findByNamedQueryAndNamedParam(String queryName, String paramName, Object value) throws DataAccessException; List<T> findByNamedQueryAndNamedParam(String queryName, String[] paramNames, Object[] values) throws DataAccessException; void flush() throws DataAccessException; void load(T entity, Serializable id) throws DataAccessException; T merge(T entity) throws DataAccessException; void persist(T entity) throws DataAccessException; void refresh(T entity) throws DataAccessException; void replicate(T entity, ReplicationMode replicationMode) throws DataAccessException; }