Java Hibernate hbm xml中缓存元素内的region属性是做什么的?
我真的被困在这里,在整个网络上找不到合适的信息 Hibernate hbm xml中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中缓存元素的详细解释之外,我希望在回答中有详细的解释
在查询/条件上设置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");