Java 使用分页获取用户数据

Java 使用分页获取用户数据,java,hibernate,caching,second-level-cache,Java,Hibernate,Caching,Second Level Cache,我有一个user表和一个子表Post包含用户的帖子。用户有大量的帖子,就像推特上的帖子一样 我需要在UI上获取用户帖子,在用户向下滚动页面时加载更多帖子,就像facebook/twitter一样。我使用hibernate作为ORM框架,MySql作为db。我研究了分页,发现了实现这一点的两种主要方法 1. setFirstResult(); setMaxResults(); 2. ScrollableResults 我有两个问题 A.哪种分页方式更合适、更高效?我读过Scrollabl

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

我需要在UI上获取用户帖子,在用户向下滚动页面时加载更多帖子,就像facebook/twitter一样。我使用hibernate作为ORM框架,MySql作为db。我研究了分页,发现了实现这一点的两种主要方法

1. setFirstResult();
   setMaxResults();

2. ScrollableResults
我有两个问题

A.哪种分页方式更合适、更高效?我读过ScrollableResults比setFirstResult更高效,但它在整个分页过程中保持连接打开

B.当加载用户的配置文件页面时,每次都会触发ajax调用来显示用户的帖子,这就像页面中的某个默认内容一样。因此,我是否需要实现二级缓存,以避免每次加载页面时都出现db命中?

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

      哪些是这些表的估计大小?不知道您的数据量,但请看一看-@Sasha表可能包含100万行。哪些是这些表的估计大小?不知道您的数据量,但请看一看-@Sasha表可能包含100万行。