關於以編程方式將Ehcache配置爲Hibernate二級高速緩存,當您使用Ehcache 2.x和net.sf.ehcache.hibernate.EhCacheRegionFactory
時,不可能開箱即用。你將不得不延長工廠類,並使其配置CacheManager
使用。
對於使用JCache的Hibernate 5.2,使用Ehcache 3.x作爲提供程序,有一個更簡單的路徑:確保先配置JCache CacheManager
,然後讓Hibernate使用配置的路徑。作爲替代方案,可以擴展org.hibernate.cache.jcache.JCacheRegionFactory
和適應CacheManager
和Cache
創作。該following sample可以幫助你看着辦吧。
關於第二點:
Spring caching是可以在您決定什麼是緩存的應用程序的所有層,從中調用等使用一般的抽象...
Hibernate second level cache是專用緩存位於您的對象模型和數據庫訪問之間。你告訴框架什麼要緩存哪些語義,但實際的工作是隱藏的。
你當然可以在一個單一的應用程序,在那裏你能緩存更高水平的結果,如服務調用結果或網頁與Spring Cache和實體/查詢結果與Hibernate 2LC結合了。雖然我會建議使用不同的Cache
很好地分開他們的內容和生命週期。
非常感謝您花費時間來回答 –
@SafdarAkrami我做對了Ehcache fullstack樣品全Java實現。但它尚未合併。所以,你可能要檢查https://github.com/henri-tremblay/ehcache3-samples/blob/javaonly/fullstack/src/main/java/org/terracotta/demo/config/CacheConfiguration.java – Henri