我正在尝试调试以下问题。我有一个页面,它将显示从MySQL表中获取的所有URL链接。每页最多显示10条记录。这是它的样子:
现在这里的问题是它可以显示记录,但是当我单击下一页(第2页)时,它不显示记录,并且有错误,但是没有显示消息,因此无法调试。据我所知,如果我在表中添加了更多记录,它可以显示第2页而没有任何问题,但是当我尝试转到第3页时,发生了同样的事情,并且无法显示记录。如下所示:
我认为这是一些计算问题,但我不知道该怎么做。
这基本上是我每次“切换”页面时都要调用的方法:
urlList = nodeFacade.list_url((pageNo - 1) * pageSize, pageSize, sortName, sortorder);
pageNo始终是当前页面的编号。因此,如果我转到第2页,则pageNo=2
并且pageSize始终始终为10
。 Sortname基本上是我的列的名称(GenDate),sortOrder是DESC
。下面是被调用的方法:
public List<UrllinkEntity> list_url(int offset, int limit, String orderBy, String order) {
try {
String sql = "SELECT g FROM UrllinkEntity as g ";
if (orderBy != null) {
sql += "order by lower(" + orderBy + ") " + order;
}
Query q = em.createQuery(sql);
q.setFirstResult(offset);
if (limit != 0) {
q.setMaxResults(limit);
}
List modList = q.getResultList();
return modList;
} catch (Exception e) {
msg = CoreUtil.wrapMsg(CoreUtil.FUNC_ERROR,
this.getClass().getName(), "list_url", e.getMessage());
return null;
}
}
我清楚地调试了每个值,它似乎能够检索这些值,但无法显示出来。那么,我做错了什么吗?
好像我使用(lastpagenumber-1)*pageSize
一样,它将能够显示每个页面而没有任何问题,但是每个页面都返回与以前相同的10条记录,因此仍然无法正常工作。
通过进一步研究,似乎是sortName
引起了问题。假设我表中有144条记录。 sortname
基本上是orderBy,我尝试使用GenDate
,它是该表中的一列,在给出错误之前它可以转到第4页。我尝试将orderBy更改为fileID
的另一列,并且在遇到相同问题之前最多可以显示第13页。总而言之,有15页要显示。所以我不知道为什么会这样。
答案 0 :(得分:1)
我想也许您的pageNo是错误的。在休眠分页中,pageNo应该是lastPageNumber。
df['col2'] = pd.Categorical(df['col2'])