今天配置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的框架里面沒有自帶,從網上下載了一個!引入之后萬事大吉了!