通过分页获取用户数据

Fetching user data with pagination

我有一个 user table 和一个包含用户帖子的子 table Post。用户有大量的帖子,就像推特帖子一样。

我需要获取 UI 上的用户帖子,当用户向下滚动页面时加载更多帖子,就像 facebook/twitter 那样。我使用休眠作为 ORM 框架 & MySql 作为数据库。我研究了分页,发现了两种主要的实现方式

1. setFirstResult();
   setMaxResults();

2. ScrollableResults

我有两个问题

一个。哪种分页方式更适合和有效地实现这一目标?我读到 ScrollableResults 比 setFirstResult 更有效,但它在整个分页过程中保持连接打开。

乙。当加载用户的个人资料页面时 ajax 每次都会触发调用以显示用户的帖子,就像页面中的某些默认内容一样。那么我是否需要实现二级缓存以避免每次页面加载时都命中数据库?

  • 如果数据集很大,那么选择 ScrollableResults 将是 更好的。
  • 如果用户将以低带宽访问您的应用程序 大多数情况下只会检索第一页或特定页面,比如从 page1 到 page2 然后使用 setFirstResult() 和 setMaxResults()。