使用hibernate二级缓存或查询缓存进行延迟提取查询

时间:2012-04-27 12:40:44

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

我使用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日志中看到它们一遍又一遍地使用相同的参数执行。

是否有要执行的配置?

1 个答案:

答案 0 :(得分:2)

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

您可以在此处详细了解:

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