Hiber缓存:永久缓存所有固定数据

时间:2010-10-07 10:43:22

标签: java hibernate orm caching annotations

我有像国家,州城这样有静态数据的表。用户不要在此数据中输入任何数据。我为国家,州,城市创造了pojo。很少有pojo与静态数据进行映射。我的要求是每当有任何请求进入Hibernate for Country(21)时,它都不会命中数据库而是从缓存中返回数据。这在Hibernate中是否可行。我需要一些指针和你的观点来在我的项目中实现缓存。我正在使用hibernate注释。

1 个答案:

答案 0 :(得分:5)

  

我的要求是每当Hibernate for Country(21)发出任何请求时,它都不会命中数据库,而是从缓存中返回数据。这在Hibernate中是否可行。

是的,这可以使用二级缓存,这种实体(只读)是缓存的最佳选择(它们是最容易管理的)。你需要:

  • 启用二级缓存
    • 在您的配置中将hibernate.cache.use_second_level_cache属性设置为true
  • 选择二级缓存提供商(我建议使用EHCache)
    • 相应地设置hibernate.cache.provider_class属性
  • 将您的实体标记为可缓存(使用read-only策略)
    • @Cache(usage = CacheConcurrencyStrategy.READ_ONLY)添加到您的实体

参考

更多资源