Java 如何使用Hibernate缓存表数据和加速查询?

Java 如何使用Hibernate缓存表数据和加速查询?,java,spring,hibernate,caching,jpa,Java,Spring,Hibernate,Caching,Jpa,我在项目中使用Hibernate4、JSF和Spring 我有一些表,如:ValidStatus,validgroup,ValidAccess,其中我已经填充了一些默认数据 我必须将所有这些表数据放在缓存中,以便在不同页面中的任何时候,我都可以使用这些表来授权用户 我们如何缓存这些表数据?在这种情况下,我必须使用二级缓存,否则其他东西也会起作用吗?Hibernate具有默认的缓存功能 Hibernate第一级缓存是会话级缓存,因此如果对象当前处于Hibernate会话中,将从中获取结果 因此,您

我在项目中使用Hibernate4、JSF和Spring

我有一些表,如:
ValidStatus
validgroup
ValidAccess
,其中我已经填充了一些默认数据

我必须将所有这些表数据放在缓存中,以便在不同页面中的任何时候,我都可以使用这些表来授权用户


我们如何缓存这些表数据?在这种情况下,我必须使用二级缓存,否则其他东西也会起作用吗?

Hibernate具有默认的缓存功能

Hibernate第一级缓存是会话级缓存,因此如果对象当前处于Hibernate会话中,将从中获取结果

因此,您不需要缓存获取的结果,它已经被hibernate缓存了

另请参见


一级缓存仅在当前运行的
会话
(也称为
EntityManager
)打开时有效

两个并发事务将在不同的
会话中运行,因此每个事务都有自己的一级缓存,这不是您的目标

您需要在并发
会话
(s)之间共享的:

  • 是一种非常著名的二级缓存实现
  • 这是由Red Hat开发的

但我只希望缓存中有有效的表数据,而不是缓存中的每个表或查询数据存储感谢任何gud示例如何与JSf+Spring应用程序集成?