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

dma*_*may 1 java orm caching annotations hibernate

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

Pas*_*ent 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)到您的实体

参考

更多资源