1

在休眠中,一级缓存已经可以用于缓存,那么为什么我们必须使用二级缓存呢?而不是二级缓存,为什么我们不能在休眠中只使用一级缓存进行缓存?

4

3 回答 3

0

请参阅Hibernate 中的一级和二级缓存是什么?有关 Hibernate 缓存的良好描述。

基本上:

  • 一级缓存加速单个会话/事务的更新
  • 二级缓存加速了许多事务中使用的对象的检索。

这是两个不同的用例,具有不同的需求,需要不同类型的逻辑。

于 2014-10-07T07:02:01.663 回答
0

一级缓存工作在 Session 级别,这意味着将跟踪一个持久对象,直到当前 Session 关闭。并且在关闭此会话之前对此对象所做的任何更改都将反映在数据库中。它默认启用。

二级缓存在 SessionFactory 级别工作,因此即使当前会话已关闭,对持久对象所做的所有更改也会被跟踪。您必须手动启用它。有一些供应商提供此功能,其中一些是 ehCache、SwarmCache、OScache 等。

于 2015-08-14T11:56:58.770 回答
0

Hibernate 二级缓存是可选的缓存,在尝试定位二级缓存中的对象之前,将始终查询一级缓存。

它主要用于当您需要跨会话缓存对象时。

于 2016-11-27T19:34:07.363 回答