我真的被困在这里,无法在整个网络上找到适当的信息。
Hibernate hbm xml中region
元素内的<cache />
属性有什么作用?
我希望答案中的详细说明除了Hibernate hbm xml中关于缓存元素的官方jboss documentation之外。
在查询/标准上设置setCacheble(true)
时更具体地询问; 默认选择哪个缓存区域; StandardQueryCache 区域或实体hbm.xml文件中指定的区域
感谢。
答案 0 :(得分:1)
“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中没有提到缓存区域,则默认缓存区域名称是您的类标记名称属性。
使用多个缓存区域可以根据您的要求。