在Spring + Hibernate中使用二級緩存配置步驟

在SSH中用二級緩存大概分以下幾步:

1、首先在hbm文件里對涉及到的對象設置緩存方式,或根據情況設置自己需要的


2、在ehcache的配置文件里配置一個cache,name為這個類名


3、在applicationContext.xml的hibernate配置里
hibernate.cache.use_query_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.cache.provider_configuration_file_resource_path=/ehcache-hibernate.xml


4、接下來就可以使用了

在getHibernateTemplate().find(hql)
之前要設置下
getHibernateTemplate().setCacheQueries(true);
getHibernateTemplate().setQueryCacheRegion("XXXXX");//這行可省略
在之后即查詢完畢后
getHibernateTemplate().setCacheQueries(false);
如果使用了setQueryCacheRegion,那還需要在配置文件里添加對應的cache配置,如果不配置,默認使用StandardQueryCache
注意:setCacheQueries方法,If this is "true", all Query and Criteria objects created by this template will be marked as cacheable (including all queries through find methods).
因此建議查詢完畢后,在返回結果前需要setCacheQueries(false);
通過getHibernateTemplate().find(hql)方式,不會出現N+1情況。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444349.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444349.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444349.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++(STL):34--- multiset容器詳解

前面章節中,對 set 容器做了詳細的講解。回憶一下,set 容器具有以下幾個特性: 不再以鍵值對的方式存儲數據,因為 set 容器專門用于存儲鍵和值相等的鍵值對,因此該容器中真正存儲的是各個鍵值對的值(value);set 容器在存儲數據時,會根據各元素值的大小對存儲的元素進行…

C++(STL):36---關聯式容器multiset、multimap源碼剖析

一、multiset multiset的特性以及用法和set完全相同,唯一的差別在于它允許鍵值重復,因此它的插入操作采用的是底層RB-tree的insert_equal()而非insert_unique() multiset源碼 //以下代碼摘錄于stl_multiset.htemplate <class _Key, class _Compare, class _Alloc>clas…

leetcode 455. 分發餅干

假設你是一位很棒的家長&#xff0c;想要給你的孩子們一些小餅干。但是&#xff0c;每個孩子最多只能給一塊餅干。對每個孩子 i &#xff0c;都有一個胃口值 gi &#xff0c;這是能讓孩子們滿足胃口的餅干的最小尺寸&#xff1b;并且每塊餅干 j &#xff0c;都有一個尺寸 sj 。…

C++(STL):33---hash_set、hash_map、hash_multiset、hash_multimap源碼剖析

這些關聯容器底層都是使用hash table實現的.一、hash_set 由于hash_set底層是以hash table實現的,因此hash_set只是簡單的調用hash table的方法即可與set的異同點:hash_set與set都是用來快速查找元素的但是set會對元素自動排序,而hash_set沒有hash_set和set的使用方法相同在…

leetcode402. 移掉K位數字

給定一個以字符串表示的非負整數 num&#xff0c;移除這個數中的 k 位數字&#xff0c;使得剩下的數字最小。 注意: num 的長度小于 10002 且 ≥ k。 num 不會包含任何前導零。 示例 1 : 輸入: num "1432219", k 3 輸出: "1219" 解釋: 移除掉三個數字…

C++:43---派生類向基類轉換、靜態/動態的類變量

一、繼承中類的類型轉換規則 我們普通的編程規則規定,如果我們想把引用或指針綁定到一個對象上,則引用或指針的類型必須與所綁定的對象的類型一致或者對象的類型含有一種可接受的const類型轉換規則。但是繼承關系中的類比較例外,其規則如下:①我們可以將基類的指針或引用綁…

C++:42---類的內存大小

一、類內存的特點 類內無任何成員變量時,默認為1字節類內成員遵循內存的對齊補齊規則(與結構體的對齊補齊一樣)函數不占內存(存在代碼段)有繼承關系時,父類的成員變量也屬于類內寸的一部分,但是C++標準并沒有明確規定派生類的對象在內存中如何分布(也就是說基類部分和派…

C++:40---繼承中類成員的變化關系

一、派生類繼承基類成員的規則 ①派生類繼承了基類的所有數據成員與函數(不論公有成員、保護成員、私有成員)②派生類雖然繼承了基類的所有成員,但是能不能訪問基類的成員還與父類成員的屬性(public、protected、private)以及繼承方式有關③類靜態成員:如果基類定義了一個靜…

C++:37---繼承概念、繼承種類

這篇文章不詳細分析繼承和不同繼承關系下的特點。 我將在后邊幾篇文章里專門針對繼承關系來做分析。 一、基類與派生類的概念 基類(父類):在繼承關系中處于上層的類派生類(子類):在繼承關系中處于下層的類class A;class B;class C:public A //C為A的子類,A為C的父類{};…

C++:41---覆蓋和隱藏

覆蓋(重寫) 概念: 基類的虛函數,如果派生類有相同的函數,則子類的方法覆蓋了父類的方法 隱藏 概念: 當子類定義出的“成員變量、方法”與父類的重名時,父類的會被隱藏重點:對于函數,基類定義了一些列的重載函數,在派生類中只要有一個同名的函數(即使參數列表不…

leetcode179. 最大數

給定一組非負整數&#xff0c;重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,30,34,5,9] 輸出: 9534330 說明: 輸出結果可能非常大&#xff0c;所以你需要返回一個字符串而不是整數。 思路&#xff1a;貪心&#xff0c;對于…

C++:39---繼承中構造函數、析構函數的關系

一、繼承中構造函數的關系 如果父類沒有構造函數,則子類初始化時不需要構造父類如果父類有構造函數,則子類初始化自己的構造函數時,要先初始化父類的構造函數基類的構造函數必須在派生類的構造函數初始化列表來進行初始化總結:在構造自己(子類)之前,需要先構造父類演示案…

Java應用服務器Tomcat

Tomcat 是一個小型的輕量級應用服務器&#xff0c;在中小型系統和并發訪問用戶不是很多的場合下被普遍使用&#xff0c;是開發和調試JSP 程序的首選。對于一個初學者來說&#xff0c;可以這樣認為&#xff0c;當在一臺機器上配置好Apache 服務器&#xff0c;可利用它響應對HTML…

C++:38---final關鍵字和禁止類繼承

一、final關鍵字 C++新標準規定:如果我們定義的類不希望被其他類繼承,那么可以在類名后加一個final關鍵字但是final類仍然可以繼承其他類。實際上C++11的關鍵字final有兩個用途。第一,它阻止了從類繼承;第二,阻止一個虛函數的重載。二、演示案例 class A final{}; class B…

C++:48---純虛函數

一、純虛函數 純虛函數一種特殊的虛函數,在許多情況下在基類中不對虛函數做出有意義的實現,而是把它定義為純虛函數,它的實現由派生類實現格式:virtual 返回類型 函數名(參數列表)=0;注意事項 純虛函數不能實現,沒有函數體,其實現由子類去實現各自的功能版本純虛函數可以…

leetcode389. 找不同

給定兩個字符串 s 和 t&#xff0c;它們只包含小寫字母。 字符串 t 由字符串 s 隨機重排&#xff0c;然后在隨機位置添加一個字母。 請找出在 t 中被添加的字母。 示例: 輸入&#xff1a; s "abcd" t "abcde" 輸出&#xff1a; e 解釋&#xff1a; …

C++:47---絕不重新定義繼承而來的缺省參數值

一、靜態類型、動態類型 靜態類型:在被聲明時所采用的的類型動態類型:目前所知對象的類型演示案例 下面是一個繼承體系class Shape {public:enum ShapeColor { Red, Green, Blue };virtual void draw(ShapeColor color = Red)const = 0;};class Rectangle :public Shape {pub…

C++:44---關鍵字virtual、override、final

一、虛函數 概念:在函數前面加virtual,就是虛函數虛函數的一些概念: 只有成員函數才可定義為虛函數,友元/全局/static/構造函數都不可以虛函數需要在函數名前加上關鍵字virtual成員函數如果不是虛函數,其解析過程發生在編譯時而非運行時派生類可以不覆蓋(重寫)它繼承的虛…

leetcode409. 最長回文串

給定一個包含大寫字母和小寫字母的字符串&#xff0c;找到通過這些字母構造成的最長的回文串。 在構造過程中&#xff0c;請注意區分大小寫。比如 "Aa" 不能當做一個回文字符串。 注意: 假設字符串的長度不會超過 1010。 示例 1: 輸入: "abccccdd" 輸…

C++:46---絕不重新定義繼承而來的non-virtual函數

一、看一個隱藏non-virtual函數的例子 假設class D以public的方式繼承于class B,代碼如下:class B {public:void mf();};class D :public B {};int main(){D x;B *pB = &x;pB->mf(); //調用B::mf()D *pD = &x;pD->mf(); //調用D::mf()return 0;}二、靜態綁…