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

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/

10-13 09:54