1

我想开发我的 dao 类的 Mock。如何模拟我的 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;
}
4

1 回答 1

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;
}
于 2012-06-01T10:00:31.213 回答