91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何配置Hibernate二級緩存

發布時間:2021-11-17 17:50:22 來源:億速云 閱讀:170 作者:小新 欄目:編程語言

小編給大家分享一下如何配置Hibernate二級緩存,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Hibernate有很多值得學習的地方,這里我們主要介紹配置Hibernate二級緩存,包括介紹在Spring托管的Hibernate二級緩存等方面。

使用EhCache配置Hibernate二級緩存:

配置Hibernatee二級緩存準備:

1)把ehcache-1.2.3.jar加入到當前應用的classpath中。

2)在hibernate.cfg.xml文件中加入EhCache緩存插件的提供類。

<property name="hibernate.cache.provider_class">     org.hibernate.cache.EhCacheProvider     </property>

3)挎貝ehcache.xml文件到類路徑(項目工程的src目錄下),這個文件在Hibernate安裝目錄的etc下。

<?xml version="1.0" encoding="utf-8"?>  <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="org.qiujy.domain.cachedemo.Category" table="categories">  //配置緩存,必須緊跟在class元素后面對緩存中的Category對象采用讀寫型的并發訪問策略   <cache usage="read-write"/>  <id name="id" type="java.lang.Long"> <column name="id" /> <generator class="native" /> </id> <!-- 配置版本號,必須緊跟在id元素后面 --> <version name="version" column="version" type="java.lang.Long" />  <property name="name" type="java.lang.String"> <column name="name" length="32" not-null="true"/> </property>  <property name="description" type="java.lang.String"> <column name="description" length="255"/> </property>  <set name="products" table="products" cascade="all" inverse="true">  <cache usage="read-write"/>  <key column="categoryId" not-null="true"/> <one-to-many class="org.qiujy.domain.cachedemo.Product"/> </set>  </class> </hibernate-mapping>

Product.hbm.xml

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="org.qiujy.domain.cachedemo.Product" table="products">  <cache usage="read-write"/>  <id name="id" type="java.lang.Long"> <column name="id" /> <generator class="native" /> </id> <!-- 配置版本號,必須緊跟在id元素后面 --> <version name="version" column="version" type="java.lang.Long" />  <property name="name" type="java.lang.String"> <column name="name" length="32" not-null="true"/> </property>  <property name="description" type="java.lang.String"> <column name="description" length="255"/> </property>  <property name="unitCost" type="java.lang.Double"> <column name="unitCost" /> </property>  <property name="pubTime" type="java.util.Date"> <column name="pubTime" not-null="true" /> </property>  <many-to-one name="category" column="categoryId" class="org.qiujy.domain.cachedemo.Category" cascade="save-update" not-null="true"> </many-to-one>  </class> </hibernate-mapping>

編輯ehcache.xml文件:

<ehcache> <diskStore path="c:\\ehcache\"/> <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"   />  <!-- 設置Category類的緩存的數據過期策略 --> <cache name="org.qiujy.domain.cachedemo.Category" maxElementsInMemory="100" eternal="true" timeToIdleSeconds="0" timeToLiveSeconds="0" overflowToDisk="false" />  <!-- 設置Category類的products集合的緩存的數據過期策略 --> <cache name="org.qiujy.domain.cachedemo.Category.products" maxElementsInMemory="500" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true" />  <cache name="org.qiujy.domain.cachedemo.Product" maxElementsInMemory="500" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true" />  </ehcache>

在Spring托管的Hibernate二級緩存
1.在spring的配置文件中,hibernate部分加入 xml 代碼 org.hibernate.cache.EhCacheProvider true
2.為HBM表設置cache策略 xml 代碼
3.在DAO中,調用find方法查詢之前,設置使用緩存 Java代碼 getHibernateTemplate().setCacheQueries(true);

補充: 如果不設置“查詢緩存”,那么Hibernate只會緩存使用load()方法獲得的單個持久化對象,如果想緩存使用findall()、list()、Iterator()、createCriteria()、createQuery()等方法獲得的數據結果集的話,就需要設置 hibernate.cache.use_query_cache true 才行。

以上是“如何配置Hibernate二級緩存”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沂源县| 丰县| 青冈县| 兴海县| 长春市| 五大连池市| 梨树县| 贡山| 茶陵县| 三原县| 油尖旺区| 广平县| 阜康市| 湘潭县| 丰镇市| 周口市| 天祝| 佛山市| 平阳县| 白银市| 蓝田县| 增城市| 成都市| 台中县| 文昌市| 新和县| 平度市| 南充市| 南召县| 贵德县| 洪雅县| 南通市| 山东| 且末县| 和静县| 承德县| 新晃| 射洪县| 宣威市| 乐至县| 浠水县|