मैं हाइबरनेट दूसरे स्तर कैश उपयोग कर रहा हूँ अपने आवेदन में, विशेष व्यावसायिक कारण के लिए मैं इकाई एनोटेशन किसी भी अधिक नहीं बदल सकते हैं बिना हाइबरनेट में कुछ कुछ संस्थाओं के दूसरे स्तर कैश अक्षम कर सकते हैं।मैं कैसे बदल रहा है एनोटेशन
मेरी परियोजना में, हाइबरनेट से डेटाबेस को बदलने के अलावा, अन्य देशी एसक्यूएल भी मौजूद हैं जो हाइबरनेट से नहीं जाते हैं। इसलिए, मूल SQL से डेटाबेस अद्यतन होने के बाद हाइबरनेट द्वितीय-स्तरीय कैश डेटा बाँध सकता है। यही कारण है कि मैं कुछ इकाइयों के लिए दूसरे स्तर के कैश को अक्षम करने के लिए चाहता हूं (प्रोग्रामेटिक रूप से या एनोटेशन बदलने से अन्य तरीके)।
अग्रिम धन्यवाद!
धन्यवाद मातेज, मुझे लगता है कि यह वही जवाब है जो मैं चाहता था! मेरे पास एक और समस्या है, मेरा ehcache.xml मेरे रननेबल प्रोजेक्ट के क्लास पथ में रखा गया है जबकि इकाई वर्ग किसी अन्य इकाई प्रोजेक्ट में रखा गया है। ऐसा लगता है कि हाइबरनेट केवल मेरे ehcache.xml से डिफ़ॉल्ट कैश सेटिंग पढ़ता है। जो है: हाइबरनेट नहीं पढ़ता मेरी अन्य संस्था ehcache.xml में कैश सेटिंग्स। –
मुझे लगता है कि <कैश नाम = "business.entity में।कार " maxElementsInMemory =" 10000 " अनन्त =" false " timeToIdleSeconds =" 1800 " timeToLiveSeconds =" 100000 " overflowToDisk =" false " /> , नाम विशेषता सही ढंग से तो सेट नहीं है हाइबरनेट नहीं कर सकते इस सेटिंग को पढ़ने और डिफ़ॉल्ट का उपयोग करने के लिए उपयोग करें। मुझे नाम विशेषता में क्या लिखना चाहिए? –
हाइबरनेट अपने इकाई के नाम से ऑब्जेक्ट के लिए कैश की पहचान करता है। डिफ़ॉल्ट श्रेणी का नाम इकाई नाम के रूप में उपयोग किया जाता है, लेकिन इसे हाइबरनेट मैपिंग फ़ाइलों में बदला जा सकता है (या एनोटेशन)। यदि आपने हाइबरनेट मैपिंग में इकाई का नाम नहीं बदला है, तो आपको बस पूरी तरह से योग्य क्लास नाम का उपयोग करना चाहिए। अन्यथा हाइबरनेट मैपिंग में स्पष्ट रूप से निर्दिष्ट (प्रतीकात्मक) इकाई नाम का उपयोग करें। – Matej