我的表很少,条目也很少,它们永远不会动态更改。所以我想将整个表缓存在内存中以减少DB的负载。我可以通过一个静态Map并将该地图填充到一个静态块中轻松实现这一目标。
我想知道Ehcache +hibernate是否可以更有效地实现相同的效果?
真正的二级缓存相对于静态映射的优点是,您仍可以通过使用Hibernate会话(或实体管理器)来保持定义,访问和遍历实体的相同方法,从而获得内存访问的优势。
您可以保持与其他实体的关系(甚至不缓存);您可以使用查询缓存,并且仍然对这些实体执行查询(这些查询的结果也将被缓存)。
简而言之,它是透明的,正如Bozho所说,它提供了更多选择,并且易于使用,因为缓存实体的使用方式与其他实体相同。