Hibernate hbm xml中缓存元素内的region属性是做什么的?

时间:2016-07-27 11:46:00

标签: java hibernate caching ehcache

我真的被困在这里,无法在整个网络上找到适当的信息。

Hibernate hbm xml中region元素内的<cache />属性有什么作用?

我希望答案中的详细说明除了Hibernate hbm xml中关于缓存元素的官方jboss documentation之外。

在查询/标准上设置setCacheble(true)时更具体地询问; 默认选择哪个缓存区域; StandardQueryCache 区域或实体hbm.xml文件中指定的区域

感谢。

1 个答案:

答案 0 :(得分:1)

Hibernate hbm xml中缓存元素中的

“region”属性用于指定缓存的名称。当您使用setCacheble(true)时,只在此缓存区域中插入或搜索查询。

区域名称用于很多地方,例如删除特定区域的所有缓存,检查命中数,未命中数等。

清除缓存的示例:

sessionFactory.evictQueries("cacheReginName");

我们可以在表上有多个缓存区域。

Criteria cri = session.createCriteria(tableName.class);
                cri.setCacheRegion("cacheReginName");

Query qry = session.createQuery("select name from tableName where Id=1");
qry.setCacheRegion("cacheReginName");

当我们使用上面的代码时,只搜索给定的缓存区域或者如果找不到查询,则在该区域中插入新的查询。

如果在获取数据时未设置缓存区域,则使用hbm.xml中提到的缓存区域。

如果hbm.xml中没有提到缓存区域,则默认缓存区域名称是您的类标记名称属性。

使用多个缓存区域可以根据您的要求。