<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
    主站蜘蛛池模板: 日韩在线播放全免费| 亚洲最大视频网站| 粉色视频成年免费人15次| 曰曰鲁夜夜免费播放视频| 亚洲黄网站wwwwww| 亚洲国产老鸭窝一区二区三区| 亚洲AV无码国产一区二区三区| 成年大片免费视频| 亚洲精品乱码久久久久久V| 99久久免费精品国产72精品九九| 久久久青草青青亚洲国产免观| 性短视频在线观看免费不卡流畅 | 我们的2018在线观看免费高清| 久久精品国产亚洲AV忘忧草18| 免费日本一区二区| 亚洲一卡2卡三卡4卡有限公司| 久久午夜羞羞影院免费观看 | 九月婷婷亚洲综合在线| 少妇亚洲免费精品| 一个人免费高清在线观看 | 一级毛片高清免费播放| 亚洲无线码在线一区观看| 久久国产乱子伦精品免费不卡| 国产一精品一AV一免费孕妇| 亚洲日韩国产精品乱-久| 国产乱弄免费视频| 美女尿口扒开图片免费| 亚洲福利在线播放| 男的把j放进女人下面视频免费| 久久国产亚洲高清观看| 四虎成人免费大片在线| 男男gay做爽爽的视频免费| 亚洲天堂在线视频| 222www免费视频| 男女猛烈xx00免费视频试看| 亚洲精品成人无限看| 无码免费午夜福利片在线 | 亚洲精品熟女国产| 国产免费AV片无码永久免费| 国产午夜无码片免费| 亚洲性线免费观看视频成熟|