【问题标题】:Using hibernate 2nd level cache or query cache for lazy fetch queries使用休眠二级缓存或查询缓存进行延迟获取查询
【发布时间】:2012-05-08 05:04:17
【问题描述】:

我使用 ehcache 2.5.2 库成功设置了 hibernate 3.6.2 以使用二级缓存。

我可以在日志和统计信息中看到实体填充了二级缓存,并且我希望可缓存的查询已被缓存。

当我在 hbm.xml 文件中使用 XML 配置时,考虑的类有一个

<cache usage="read-write"/>

子元素。

定义了以下属性:

hibernate.cache.use_second_level_cache=true
hibernate.cache.use_query_cache=org.hibernate.cache.EhCacheProvider
hibernate.cache.use_query_cache=true

但是,hibernate 不会缓存它生成的查询以执行实体或集合的延迟加载。我可以在 postgresql 日志中看到它们以相同的参数一遍又一遍地执行。

是否有执行此操作的配置?

【问题讨论】:

    标签: hibernate caching lazy-loading second-level-cache


    【解决方案1】:

    您只需要确保使用@Cache 注释映射您的类和关系。

    您可以在此处阅读更多信息:

    http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#performance-cache-mapping

    【讨论】:

    • 你完全正确,我只是误读了文档。 DTD 指示将 元素放在 .hbm.xml 文件中的什么位置,例如作为 或 的子元素。然后它就完美地工作了。谢谢。
    猜你喜欢
    • 2015-10-23
    • 2018-09-16
    • 2011-03-07
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    相关资源
    最近更新 更多