2016-07-27 42 views
1

我真的被困在这里,无法在整个网络上找到合适的信息。Hibernate hbm xml中的cache元素中的region属性是干什么的?

Hibernate hbm xml中的<cache />元素中的region属性是干什么的?

我期待在回答一个详细的解释除了形成正式jboss documentation约在一个Hibernate XML HBM缓存元素

问更具体,设置在查询/标准setCacheble(true)时。 默认选择哪个缓存区域; StandardQueryCache区域或实体中指定的实体hbm.xml文件

谢谢。

回答

1

Hibernate中的缓存元素中的“region”属性hbm xml用于给出缓存的名称。当您使用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中没有提及缓存区域,那么默认缓存区域名称就是您的类标记名称属性。

使用多缓存区域可以根据您的要求。