今天配置hibernate的二級緩衝,道路是曲折的,但是最後還是配置成功!期間遇到了不少小問題,記錄下來防止有像我這樣的菜鳥兄弟在配置的時候不知所措!廢話不說了說一下正確的步驟和重要的配置代碼!
第一步,先引入jar包。ehcache-1.5.0.jar最關鍵的jar包了,因為他是二級緩衝的主角嗎!還有一個配角沒了他你也會不好過,D:\WEB Document\JAR包\backport-util-concurrent-2.2.jar。
第二步,在hibernate的設定檔或spring的設定檔中填寫下列代碼(我這裡使用的是spring的設定檔):
<!-- 配置hibernate二級緩衝 --><prop key="hibernate.cache.use_query_cache">true</prop><prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
當然hibernate設定檔依據這個配置就相當easy了。
第三步,配置*.hbm.xml檔案
<cache usage="read-write"/>
當然這裡只是向需要二級緩衝的pojo類中添加這個配置,如果不需要就不用”節外生枝“了。
下面我主要說一下我在配置的過程中遇到的錯誤:
第一個,cvc-complex-type.2.3: Element 'props' cannot have character [children], because the type's content type is element-only.
這個錯誤我還沒有解決,但是這個錯誤我好像和另一個網上的同胞遇到的一樣,從外面粘貼了代碼就出現了這樣的錯誤!原因有待大家解決!
第二個, Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]
這個錯誤時由於配置hibernate或spring的設定檔的時候出錯,因為不同的hibernate版本這兩個屬性有點區別。一定還要嚴格按照上面的配置來配置。
第三個, java.lang.ClassNotFoundException: edu.emory.mathcs.backport.java.util.concurrent.BlockingQueue。好了剛才說的那個配角終於發揮作用了!這個錯誤就是那個配角給搞的破壞,現在把它引入吧!不過有的我現在使用的spring的架構裡面沒有內建,從網上下載了一個!引入之後萬事大吉了!