亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何配置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

聊城市| 江孜县| 双鸭山市| 吉木萨尔县| 炉霍县| 台山市| 伊春市| 孟连| 二连浩特市| 且末县| 滨州市| 独山县| 淮北市| 得荣县| 德钦县| 常州市| 安化县| 徐水县| 长子县| 张家港市| 南安市| 鄱阳县| 东兴市| 吉水县| 宣城市| 清水河县| 调兵山市| 闽侯县| 砚山县| 禹州市| 西丰县| 兴文县| 清苑县| 嘉鱼县| 通榆县| 兴仁县| 洪泽县| 江油市| 彩票| 浙江省| 庆云县|