首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缓存spring/hibernate webapp

缓存spring/hibernate webapp
EN

Stack Overflow用户
提问于 2009-10-19 06:59:25
回答 2查看 381关注 0票数 3

我有一个网站,允许以各种方式搜索内容列表,例如“显示由用户523创建的按日期排序的内容”或“显示最近10个帖子的列表”。

我的ORM使用Hibernate,Hibernate为对象提供缓存。然而,对于对象列表,比如最新内容的首页列表,我不知道如何最好地缓存这些内容。现在,我让Spring控制器只返回一个标准的JSP页面,然后在JSP级别使用oscache来包装对另一个类的调用。

不过,这似乎并不优雅。我真正想要的是让我的控制器能够访问缓存的结果,这样JSP就可以只关心结果的显示。

我在这里有什么选择?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-19 07:30:40

您的意思是,除了实体之外,您还想缓存hibernate查询的结果?如果是这样,那么您需要查看query caching

票数 3
EN

Stack Overflow用户

发布于 2009-10-19 08:04:13

对于这种缓存,Hibernate将问题分成两个级别:

  1. 与查询对应的in列表:此结果可能会在许多方面发生变化。例如,如果查询使用的任何表发生更改,则结果也可能发生更改。无论它是否被有效地更改,都很难计算和维护到最新,因此在大多数情况下效率都很低。因此,Hibernate选择不缓存与query.
  2. Once相对应的ids。在已知与查询相对应的ids列表的情况下,还需要与返回的实体相对应的所有数据,以及所获取的所有实体(或组件)。在这里,我们假设您认为这些实体是恒定的-足够和足够的读取,因此缓存它们是可取的。这种数据检索完全得益于常规的二级Hibernate the

为了提高缓存效率和代码简单性,我将希望缓存的结果分成两个级别:

  • 仅返回id (可能还包括未选择用于二级Hibernate缓存的实体)的查询
  • 通过id获取的其他数据,以受益于二级缓存
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1587306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档