<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
    主站蜘蛛池模板: 伊人亚洲综合青草青草久热| 男女交性无遮挡免费视频| 亚洲国产人成精品| 99久久综合国产精品免费| a毛片全部播放免费视频完整18| 国产亚洲精品美女2020久久 | 亚洲精品动漫免费二区| 青青草原精品国产亚洲av| 国产精品亚洲mnbav网站| 色吊丝永久在线观看最新免费| 在线看无码的免费网站| 国产免费久久精品99久久| 亚洲日韩国产AV无码无码精品| 亚洲无圣光一区二区| 人人狠狠综合久久亚洲婷婷| 亚洲精品乱码久久久久久蜜桃 | 亚洲色偷偷狠狠综合网| 午夜时刻免费入口| 久草视频免费在线| 5g影院5g天天爽永久免费影院| a级毛片毛片免费观看久潮| 成年网站免费入口在线观看 | 免费的涩涩视频在线播放| 国产又黄又爽又猛免费app| 8x网站免费入口在线观看| 久久久免费的精品| 女人体1963午夜免费视频| a级精品九九九大片免费看| 国产高潮久久免费观看| 四虎精品成人免费视频| 免费观看又污又黄在线观看| 国产亚洲精品欧洲在线观看| 亚洲伊人久久大香线蕉AV| 丁香婷婷亚洲六月综合色| 亚洲伊人久久大香线蕉结合| 亚洲一卡二卡三卡| 国产亚洲精品VA片在线播放| 亚洲无码一区二区三区| 欧洲亚洲综合一区二区三区 | 奇米影视亚洲春色| 亚洲精品无码久久久影院相关影片|