我有几个表中包含很少的条目,它们永远不会动态更改。所以我想将整个表缓存在内存中以减少对DB的负载。我可以通过静态Map轻松实现这一点,并在静态块中填充地图。
我想知道Ehcache + hibernate是否可以通过更有效的方式实现相同的目标?
答案 0 :(得分:7)
Ehcache比地图有更多功能:
如果您不需要其中任何一个,您可以安全地使用地图 - 它将更容易配置。
答案 1 :(得分:6)
真正的二级缓存优于静态映射的优势在于,您仍然可以通过保持定义,访问和遍历实体的相同方式来获得内存访问的优势:使用Hibernate会话(或实体)经理)。
您可以与其他实体保持关系(即使没有缓存);您可以使用查询缓存并仍然对这些实体执行查询(这些查询的结果也将被缓存)。
简而言之,它是透明的,提供了更多选项,如Bozho所说,并且更容易使用,因为缓存的使用方式与其他实体的使用方式相同。