package com.axxx.dps.apv.persistence; import java.util.List; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Order; public interface GenericEntityDao<T extends GenericEntity<T>> { public abstract GenericEntity<?> getEntity(Class<? extends GenericEntity<?>> clazz, Integer id); public abstract T getById(Number id); public abstract T getByField(String fieldName, Object fieldValue); public abstract void update(T entity); public abstract void create(T entity) throws RuntimeException; public abstract void saveOrUpdate(T entity); public abstract void delete(T entity); public abstract T refresh(T entity); public abstract List<T> list(); public abstract List<T> listByField(String fieldName, Object fieldValue); public abstract List<T> list(Class<? extends T> objectClass, Criterion filter, Order order, Integer limit, Integer offset); public abstract Long count(); public abstract Long count(Class<? extends T> objectClass, Criterion filter, Order order, Integer limit, Integer offset); public abstract void evict(T object); public abstract void evictCollection(String roleName); public abstract void flush(); public abstract void setReadOnly(T object, boolean readOnly); public abstract void clearSession(); }