2008-09-10 15 views
7

पर जेपीए के साथ हाइबरनेट द्वितीय-स्तरीय कैश को सक्षम करना जावा पर्सिस्टेंस एपीआई (एनोटेटेड इकाइयों) का उपयोग करते समय, हाइबरनेट के दूसरे-स्तरीय कैश को सक्षम करने के लिए आवश्यक कदम क्या हैं? मैं कैसे जांचूं कि यह काम कर रहा है? मैं जेबॉस 4.2.2.जीजी का उपयोग कर रहा हूँ।जेबॉस 4.2

हाइबरनेट प्रलेखन से ऐसा प्रतीत होता है कि मैं कैश सक्षम और तरह persistence.xml में एक कैश प्रदाता निर्दिष्ट, की जरूरत है:

<property name="hibernate.cache.use_second_level_cache" 
      value="true" /> 
<property name="hibernate.cache.provider_class" 
      value="org.hibernate.cache.HashtableCacheProvider" /> 

और क्या आवश्यकता है? क्या मुझे अपनी जेपीए इकाइयों को @ कैश एनोटेशन जोड़ने की आवश्यकता है?

मैं कैसे बता सकता हूं कि कैश काम कर रहा है या नहीं? मैंने क्वेरी चलाने के बाद कैश आंकड़ों तक पहुंचने का प्रयास किया है, लेकिन सांख्यिकी.getSecondLevelCacheStatistics शून्य लौटाता है, शायद इसलिए कि मुझे नहीं पता कि 'क्षेत्र' नाम का उपयोग करने के लिए क्या नहीं है।

उत्तर

3

मुझे विश्वास है कि आपको कैश एनोटेशन जोड़ने की आवश्यकता है ताकि हाइबरनेट को दूसरे-स्तर के कैश का उपयोग कैसे किया जा सके (केवल पढ़ने, पढ़ने-लिखने आदि)। यह मेरे ऐप में था (वसंत/पारंपरिक हाइबरनेट और एशेकैच का उपयोग करके, इसलिए आपका माइलेज भिन्न हो सकता है)। एक बार कैश संकेत दिए जाने के बाद, मैंने संदेशों को देखना शुरू कर दिया कि वे हाइबरनेट से उपयोग में थे।

4

का पालन-अप: अंत में, एनोटेशन जोड़ने के बाद, मैं इसे ehcache के साथ काम किया है, यानी

<property name="hibernate.cache.provider_class" 
      value="net.sf.ehcache.hibernate.EhCacheProvider" /> 
+1

ध्यान दें कि हाइबरनेट 3.3+ में, इस पैरामीटर अब hibernate.cache.region.factory_class और नहीं है ऊपर क्या है वंशावली के लिए इसे जोड़ना;) –