package play.utils.dao; import java.util.List; import com.avaje.ebean.Expression; import com.avaje.ebean.Page; public interface DAO<K, M> { List<M> all(); K create(M c); void remove(K key) throws EntityNotFoundException; M get(K key); void update(M c); void addListener(DAOListener<K, M> l); Page<M> page(int page, int pageSize, String orderBy); <F> Page<M> page(int page, int pageSize, String orderBy, String filterField, F filterValue); Page<M> page(int page, int pageSize, String orderBy, String cacheKey, Expression expression); void saveAssociation(M c, String association); }