<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

    假設類A為持久化對象,對應表為tableA,這里沒有考慮A和其他表關聯的情況。

    在spring下配置使用二級緩存:

    <property name="hibernateProperties">
    <props>
    ........
    <prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
    <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>
    </props>
    </property>

    其中${hibernate.cache.provider_class}為net.sf.ehcache.hibernate.EhCacheProvider,${hibernate.cache.use_query_cache}屬性值為true(對經常使用的List查詢方式,只有在使用查詢緩存時,才會從緩存中通過id去get緩存的值;查詢緩存一般緩存查詢語句和查詢結果的id)

    A的持久化映射文件中加上cache元素:usage屬性的取值根據自己的情況自己指定相應的值

    <cache usage="read-write"/>

    配置spring的HibernateTemplate對查詢語句和結果緩存(cacheQueries值為true):

    <bean id="hibernateTemplate"
            <property name="sessionFactory"><ref bean="sessionFactory"/></property>
        <property name="cacheQueries" value="${hibernate.cache.use_query_cache}"></property>
    </bean>
    開發的spring dao(集成HibernateDaoSupport)應該配置實用這個hibernateTemplate:

    <bean id="myDao" of HibernateDaoSupport">
    <property name="hibernateTemplate" ref="hibernateTemplate" />
    <property name="jdbcTemplate" ref="jdbcTemplate" />
    </bean>

    在src下新建ehcache.xml文件,文件內容如下:

    <ehcache>
    <diskStore path="java.io.tmpdir"/>

    <!--
            eternal:元素是否永久的;
            MemoryStoreEvictionPolicy:default is LRU
        -->
    <defaultCache         maxElementsInMemory="10000"
                eternal="false"            timeToIdleSeconds="120"            timeToLiveSeconds="120"
                overflowToDisk="true"            diskPersistent="false"           diskExpiryThreadIntervalSeconds="120"
                memoryStoreEvictionPolicy="LRU"/>

    <cache name="cn.hnisi.persistence.mmedia.Dmtjbxx"
                   maxElementsInMemory="500"               eternal="false"
                   timeToIdleSeconds="2400"      timeToLiveSeconds="3600"
                   overflowToDisk="false"/>

    <cache name="org.hibernate.cache.StandardQueryCache"
            maxElementsInMemory="50" eternal="false" timeToIdleSeconds="600"
            timeToLiveSeconds="1200" overflowToDisk="false"/>

    <cache name="org.hibernate.cache.UpdateTimestampsCache"
            maxElementsInMemory="500" eternal="true" overflowToDisk="false"/>

    </ehcache>
    然后你可以使用HQL查詢對象了,比如"from A where name=?";

    跟蹤查詢的sql日志就可以看出第一次是查詢數據庫,第二次是從緩存中get(見Hibernate ReadWriteCache類的get方法)

    問題:什么樣的數據適合存放到第二級緩存中?

    1 很少被修改的數據
    2 不是很重要的數據,允許出現偶爾并發的數據
    3 不會被并發訪問的數據
    4 參考數據,指的是供應用參考的常量數據,它的實例數目有限,它的實例會被許多其他類的實例引用,實例極少或者從來不會被修改。


    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/selley/archive/2008/03/13/2177479.aspx

    posted on 2012-05-13 02:07 abin 閱讀(1939) 評論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 亚洲中文字幕一二三四区| 亚洲一级二级三级不卡| 亚洲色欲色欱wwW在线| 免费A级毛片无码无遮挡内射| 久久精品国产亚洲av水果派| 无码免费一区二区三区免费播放| 亚洲av片劲爆在线观看| 久久免费动漫品精老司机| 久久亚洲AV无码精品色午夜麻| 国产真人无码作爱视频免费| 亚洲成Av人片乱码色午夜| 久久大香香蕉国产免费网站| 日韩亚洲AV无码一区二区不卡| 日韩人妻无码精品久久免费一| 亚洲黄色在线视频| 国国内清清草原免费视频99| 亚洲av乱码一区二区三区| 成年美女黄网站色大免费视频| 亚洲色丰满少妇高潮18p| 国产乱弄免费视频| 国产精品美女久久久免费| 亚洲成AV人片在线播放无码| 曰批全过程免费视频网址 | 国产亚洲无线码一区二区| 麻豆精品成人免费国产片| 亚洲欧洲日产国码二区首页| 免费黄色大片网站| 丰满少妇作爱视频免费观看| 亚洲va久久久噜噜噜久久男同 | 久久久精品免费国产四虎| 亚洲国产精品成人久久久| 国产精品另类激情久久久免费| 久久国产精品免费| 亚洲香蕉免费有线视频| 国产在线观看www鲁啊鲁免费| 二个人看的www免费视频| 亚洲福利秒拍一区二区| 国产a级特黄的片子视频免费| 三上悠亚电影全集免费| 亚洲大成色www永久网址| 色噜噜亚洲精品中文字幕 |