在Hibernate中使用EhCache
EhCache是一個純Java程序,可以在Hibernate中作為一個插件引入。它具有運行速度快、結構簡單、占用內存小、很小的依賴性、支持多CPU服務器、文檔齊全等特點。
在Hibernate中使用EhCache,需要在hibernate.cfg.xml中設置如下:
<property name=” hibernate.cache.provider_class”> org.hibernate.cache.EhCacheProvider </property> |
<diskStore path="d:\\cache"/> //設置cache.data文件的存放位置 <defaultCache maxElementsInMemory="10000" //緩存中允許創建的最大對象數 eternal="false" //緩存中對象是否為永久的 timeToIdleSeconds="120" //緩存數據鈍化時間(即對象在它過期前的空閑時間) timeToLiveSeconds="120" //緩存數據生存時間(即對象在它過期前的生存時間) overflowToDisk="true" //是否啟用磁盤緩存 /> <cache name="Student" //用戶自定義的Cache配置 maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true" /> </ehcache> |
此外,還需要在持久化類的映射文件中進行配置。例如,Group(班級)和Student(學生)是一對多的關系,它們對應的數據表分別是t_group和t_student。現在要把Student類的數據進行二級緩存,這需要在兩個映射文件(Student.hbm.xml和Group.hbm.xml)中都對二級緩存進行配置。
在Group.hbm.xml中配置二級緩存如下:
…… <hibernate-mapping> <class name="Group" table="t_group" lazy="false"> …… <set name="students" cascade="save-update" inverse="true" <!--關系由Student維護--> lazy="true" > <cache usage="read-write"/> //<!--集合中的數據將被緩存--> <key column="id"/> <one-to-many class="Student"/> </set> </class> </hibernate-mapping> …… |
<class name="Student" table="t_student" > <cache usage="read-write" /> <!--cache標記需跟在class標記后--> …… </class> |
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!