什么时候在hibernate中使用二级缓存

时间:2016-07-24 07:14:12

标签: hibernate

我知道hibernate中的第一级和第二级缓存是如何工作的。

但我想知道

1.将是第一个使用的缓存,何时将是第二个

  1. 如何将对象存储在第一个和第二个中。第二级是否保留与第一级相同的副本

1 个答案:

答案 0 :(得分:0)

第一级缓存由Session或EntityManager维护,并且仅在该对象的生命周期内使用。这确保了如果您在会话的生命周期内多次获取/查找/检索特定实体,您将获得相同的实例(或至少是同一实例的代理)。

第二级缓存在Session / EntityManager之外维护,通常有一个对象的副本,但没有直接链接(与Session中的对象一样)。

谨慎一点。如果在具有多个实例的应用程序中使用hibernate,则不会在实例之间共享第二级缓存。为此,您需要使用分布式缓存(例如赤陶)...如果您希望应用程序实例之间的一致性。如果要缓存静态数据,这不是问题。