我想开发一个我的dao类的模拟。我如何模仿GenericDao的以下方法? :
public List<T> getList(int max, int p) throws DataAccessException {
String t= type.getT();
String sql = "from " + t+ " order by id desc";
List<T> o= HibernateUtils(type, this.getSession().createQuery(sql).setFirstResult(max* (p- 1)).setMaxResults(max).list());
return o;
}
内在的东西:
@Override
public List<T> getList(int maxResults, int pageNumber) {
List<T> list = new ArrayList<T>();
//......
return list;
}
答案 0 :(得分:1)
致电getList()
,然后在结果上使用subList()
方法将其剪切为页面。
您需要使用LinkedHashMap
作为地图实现,以确保值的顺序不会改变。
试试这个:
@Override
public List<T> getListByPage(int maxResults, int pageNumber) {
List<T> list = getList();
if( list.size() > maxResults ) {
list = list.subList( 0, maxResults );
}
int start = pageNumber * pageSize;
int end = Math.min( start + pageSize, list.size() );
if( list.size() < start ) {
list = new ArrayList<T>();
} else {
list = list.subList( start, end );
}
return list;
}