我真的被困在这里,无法在整个网络上找到合适的信息。
Hibernate hbm xml中region
元素内的<cache />
属性有什么作用?
我期望在答案中有一个详细的解释,除了官方的jboss documentation关于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");
要么
Query qry = session.createQuery("select name from tableName where Id=1");
qry.setCacheRegion("cacheReginName");
每当我们使用以上代码时,仅搜索给定的缓存区域,或者如果未找到查询,则在该区域中插入新查询。
如果在获取数据时未设置任何缓存区域,则使用hbm.xml中提到的缓存区域。
如果hbm.xml中未提及任何缓存区域,则默认缓存区域名称是您的类标签名称属性。
可以根据您的要求使用多个缓存区域。
关于java - Hibernate hbm xml中的cache元素内部的region属性做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38612058/