【问题标题】:what does the region attribute inside cache element in a Hibernate hbm xml do?Hibernate hbm xml 中缓存元素内的 region 属性有什么作用?
【发布时间】:2016-12-01 09:51:44
【问题描述】:

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

Hibernate hbm xml 中<cache /> 元素内的region 属性有什么作用?

除了官方jboss documentation 之外,我期待在答案中给出关于 Hibernate hbm xml 中的缓存元素的详细解释。

更具体地说,在查询/条件上设置setCacheble(true) 时; 默认选择哪个缓存区域; StandardQueryCache 区域或 entity hbm.xml 文件中指定的区域

谢谢。

【问题讨论】:

    标签: java hibernate caching ehcache


    【解决方案1】:

    Hibernate 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 中没有提到缓存区域,则默认缓存区域名称是您的类标签名称属性。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 2013-01-20
      • 2011-07-27
      • 2016-11-09
      • 1970-01-01
      相关资源
      最近更新 更多