我有一个应用程序,使用Hibernate从数据库中获取数据。 我希望每天加载一次缓存(按用户)以获取数据库状态,并使用缓存。
我正在使用Spring框架与Hibernate,并且知道它们都具有一些缓存功能。
它们之间有什么区别?哪一个是更好的选择?
我有一个应用程序,使用Hibernate从数据库中获取数据。 我希望每天加载一次缓存(按用户)以获取数据库状态,并使用缓存。
我正在使用Spring框架与Hibernate,并且知道它们都具有一些缓存功能。
它们之间有什么区别?哪一个是更好的选择?
在我看来,从Hibernate缓存开始是一个更为谨慎的决定,尤其是因为这两者并不排斥彼此。就性能而言,Spring缓存可以为您提供更多,它位于堆栈的更高层,您可以缓存业务结果(基本上比使用Hibernate的二级缓存更多)。
然而,一个显着的区别是清除缓存。使用Spring缓存时需要明确清除,而如果您的插入、更新和删除通过Hibernate框架进行,则Hibernate缓存会自动维护。
在我所涉及的项目环境中,默认情况下假定使用Hibernate的二级缓存。我们使用Spring缓存来处理更为静态的数据。
1. 第一级 2. 第二级
第二级缓存
是为整个应用程序设计的,而第一级缓存
是为当前Hibernate会话设计的。没有基于用户的缓存可用。用户的会话
中,即只要用户具有活动会话。Spring具有会话作用域bean
,您可能希望使用这些bean来按用户缓存数据。