在休眠狀態下緩存
緩存功能旨在減少必要的數據庫訪問量。 緩存對象時,它們將駐留在內存中。 您可以靈活地限制內存的使用并將項目存儲在磁盤存儲中。實現取決于底層的緩存管理器。 可以使用多種緩存類型,但是更好地緩存非事務性和只讀數據。
Hibernate提供了3種緩存類型。
1.會話緩存
會話緩存在當前會話中緩存對象。 在Hibernate中默認啟用它。 閱讀有關會話緩存的更多信息。 會話緩存中的對象位于相同的內存位置。
2.二級緩存
二級緩存負責跨會話緩存對象。 啟用此選項后,將首先在緩存中搜索對象,如果未找到對象,則將觸發數據庫查詢。 在這里閱讀有關如何實現二級緩存的信息 。 當使用對象的主鍵加載對象時,將使用二級緩存。 這包括獲取關聯。 在二級緩存的情況下,將構造對象,因此所有對象將駐留在不同的內存位置。
3.查詢緩存
查詢緩存用于緩存查詢結果。 閱讀有關如何實現查詢緩存的信息 。打開查詢緩存時,查詢結果將根據組合查詢和參數進行存儲。 每次觸發查詢時,緩存管理器都會檢查參數和查詢的組合。 如果在高速緩存中找到結果,則將它們返回,否則將啟動數據庫事務。 如您所見,如果查詢具有多個參數或單個參數可以包含多個值,則緩存查詢不是一個好主意。 對于每種組合,結果都存儲在存儲器中。 這會導致大量的內存使用。
最后,這是有關此主題的好文章列表,
1. 通過二級緩存加速您的Hibernate應用程序
2. 休眠:真正了解二級和查詢緩存
3. EhCache與Spring和Hibernate集成。 分步教程 4. 使用休眠配置Ehcache
參考: 有關 “面向對象的生活”博客的JCG合作伙伴 Manu PK的所有有關Hibernate Second Level Cache的信息。
翻譯自: https://www.javacodegeeks.com/2012/08/hibernate-caches-basics.html