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

Java Hibernate hbm xml中缓存元素内的region属性是做什么的?,java,hibernate,caching,ehcache,Java,Hibernate,Caching,Ehcache,我真的被困在这里,在整个网络上找不到合适的信息 Hibernate hbm xml中元素中的区域属性做什么 除了官方关于Hibernate hbm xml中缓存元素的详细解释之外,我希望在回答中有详细的解释 在查询/条件上设置setCacheble(true)时,更具体地询问默认选择哪个缓存区域;StandardQueryCache区域或实体hbm.xml文件中指定的区域 谢谢。Hibernate hbm xml中缓存元素中的“region”属性用于提供缓存的名称。当您使用setCacheble

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

Hibernate hbm xml中
元素中的
区域属性做什么

除了官方关于Hibernate hbm xml中缓存元素的详细解释之外,我希望在回答中有详细的解释

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

谢谢。

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

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

清除缓存的示例:

sessionFactory.evictQueries("cacheReginName");
我们可以在一个表上有多个缓存区域

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

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

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

如果hbm.xml中没有提到缓存区域,那么默认的缓存区域名称是class-tags-name属性

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

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