2012-03-08 124 views
1

我能夠通過使用HibernateTemplate.load(Class entityClass, Serializable id)擺脫高速緩存,但只有一個對象的數據,Hibernate的二級緩存+的Ehcache問題

[2012-03-06 04:34:18,755] [INFO] [com.uprr.app.rim.components.common.service.RIMSpringApplicationContext] [ApplicationContext is set and ready for use for XMF service clients....] 
[2012-03-06 04:34:20,255] [WARN] [org.hibernate.mapping.RootClass] [composite-id class does not override equals(): com.uprr.app.rim.components.exinterface.domain.Track] 
[2012-03-06 04:34:20,270] [WARN] [org.hibernate.mapping.RootClass] [composite-id class does not override hashCode(): com.uprr.app.rim.components.exinterface.domain.Track] 
[2012-03-06 04:34:35,442] [DEBUG] [org.hibernate.cache.CacheFactory] [instantiating cache region: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO usage strategy: read-only] 
[2012-03-06 04:34:35,442] [WARN] [org.hibernate.cache.CacheFactory] [read-only cache configured for mutable class: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO] 
[2012-03-06 04:34:35,646] [DEBUG] [org.hibernate.cache.CacheFactory] [instantiating cache region: com.uprr.app.rim.components.masters.domain.CommPlaceDO usage strategy: read-only] 
[2012-03-06 04:34:35,646] [WARN] [org.hibernate.cache.CacheFactory] [read-only cache configured for mutable class: com.uprr.app.rim.components.masters.domain.CommPlaceDO] 
[2012-03-06 04:34:36,005] [INFO] [org.hibernate.cache.UpdateTimestampsCache] [starting update timestamps cache at region: org.hibernate.cache.UpdateTimestampsCache] 
[2012-03-06 04:34:36,021] [INFO] [org.hibernate.cache.StandardQueryCache] [starting query cache at region: org.hibernate.cache.StandardQueryCache] 
[2012-03-06 04:34:36,380] [DEBUG] [org.hibernate.SQL] [select commplacet0_.COM_PLAC_TYPE_ID as COM1_82_, commplacet0_.COM_PLAC_TYPE_CODE as COM2_82_, commplacet0_.COM_PLAC_TYPE_DESC as COM3_82_, commplacet0_.ACT_FLAG as ACT4_82_, commplacet0_.CRTN_USER_ID as CRTN5_82_, commplacet0_.CRTN_DT as CRTN6_82_, commplacet0_.LAST_UPTD_USER_ID as LAST7_82_, commplacet0_.LAST_UPTD_DT as LAST8_82_ from RIM_COM_PLAC_TYPE_MSTR commplacet0_ where commplacet0_.COM_PLAC_TYPE_ID=172 order by commplacet0_.COM_PLAC_TYPE_DESC] 
[2012-03-06 04:34:37,052] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [**Caching**: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#172] 
[2012-03-06 04:34:37,130] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [**Cache hit:** com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#172] 

但當我嘗試使用loadAll(),getHibernateTemplate().find(strQuery)Query.list() ......這些所有的方法再次命中數據庫,並試圖再次緩存數據以獲得從高速緩存內存對象的列表,並在記錄儀顯示警告:

[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [**item already cached:** com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#**180**] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#**169**] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#**166**] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#**139**] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#140] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#138] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#149] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#143] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#130] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#142] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#165] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#167] 
[2012-03-08 06:56:10,050] [DEBUG] [org.hibernate.cache.ReadOnlyCache] [item already cached: com.uprr.app.rim.components.masters.domain.CommPlaceTypeDO#168] 
+0

任何人都可以幫助我解決這個問題? – Sandy 2012-03-08 13:31:52

+1

擺脫你的警告,並嘗試.....這裏沒有太多的東西要繼續下去。 「[WARN] [org.hibernate.mapping.RootClass] [composite-id類不覆蓋equals():com.uprr.app.rim.components.exinterface.domain.Track] [2012-03-06 04:34 :20,270] [WARN] [org.hibernate.mapping.RootClass] [複合id類不覆蓋hashCode():「 – 2012-03-08 13:47:33

+0

刪除警告但仍然相同的問題.. :( – Sandy 2012-03-08 15:32:57

回答

4

一世當激活二級緩存&試圖緩存我的標準時,它實際上面臨同樣的問題。

如果我不設置緩存爲true,

更新:我終於找到了解決辦法,問題就來了從我的休眠版本。我在休眠3.2。升級到3.6.9解決了我的問題:)

希望它可以幫助!

+0

是的,它幫助了我。謝謝:) – 2017-10-12 13:07:13