2014-10-07 103 views
1

在休眠已經有一級緩存可用於緩存,那麼爲什麼我們必須使用二級緩存?爲什麼我們不能在Hibernate中只使用一級緩存進行緩存,而不是第二級?休眠緩存

回答

0

有關Hibernate緩存的詳細說明,請參閱What are First and Second Level caching in Hibernate?

基本上是:

  • 一級高速緩存中加快更新單個會話/事務
  • 二級緩存加速在許多交易中使用對象的檢索。

這些是兩種不同的使用情況,需要不同的需求,需要不同種類的邏輯。

+0

@ user3898783 does [this](http://ankursinghal86.blogspot.jp/2014/07/how-hibernate-second-level-cache-works.html)幫助你 – 2014-11-18 13:12:29

0

一級高速緩存在會話級別工作,這意味着一個持久對象將被跟蹤,直到當前Session被關閉。在關閉此會話之前對此對象所做的任何更改都會反映在數據庫中。它默認啓用。

二級緩存工作在SessionFactory級別,因此即使當前會話已關閉,也會跟蹤對持久對象所做的所有更改。您必須手動啓用它。有幾個供應商提供這種功能,其中一些是ehCache,SwarmCache,OScache等。

0

Hibernate二級緩存是一個可選緩存,並且在嘗試定位一個對象之前總是會查詢一級緩存在二級緩存中。

它主要用於需要跨會話緩存對象的情況。