我真的被困在这里,找不到合适的信息在整个网络上。
Hibernate hbm中的region元素内的<cache />属性是做什么的?
除了Hibernate hbm中关于缓存元素的官方jboss文档之外,我期待在答案中有详细的解释。
更具体地说,在对查询/条件设置setCacheble(true)时询问;默认情况下选择缓存区域的;区域或实体hbm.xml文件中指定的缓存区域
谢谢。
发布于 2016-08-04 08:08:30
Hibernate hbm中缓存元素中的"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中没有提到缓存区域,那么默认的缓存区域名称就是类标记名称属性。
使用多个缓存区域可以根据您的要求。
https://stackoverflow.com/questions/38612058
复制相似问题