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

what does the region attribute inside cache element in a Hibernate hbm xml do?

我真的卡在这里,在整个网络上找不到合适的信息。

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

我期待官方 jboss documentation 关于 Hibernate hbm xml 中缓存元素的详细解释。

更具体地询问,当在 queries/criteria 上设置 setCacheble(true) 时; 默认选择哪个缓存区域StandardQueryCache 区域或 entity hbm.xml 文件

中指定的区域

谢谢。

Hibernate hbm xml 缓存元素中的

"region" 属性用于提供缓存的名称。当您使用 setCacheble(true) 时,查询将仅在此缓存区域中插入或搜索。

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

清除缓存的示例:

sessionFactory.evictQueries("cacheReginName");

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

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 中未提及缓存区域,则默认缓存区域名称是您的 class 标签名称属性。

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