/ / कैसे एक ही (दृढ़ता) इकाई के लिए विभिन्न संगामिति रणनीति आवंटित करने के लिए? - जावा, हाइबरनेट, कैशिंग, संगामिति

एक ही (दृढ़ता) इकाई के लिए विभिन्न समवर्ती रणनीति कैसे असाइन करें? - जावा, हाइबरनेट, कैशिंग, समवर्ती

मैं JPA का उपयोग कर रहा हूं और मैं सभी संदर्भ संस्थाओं के लिए दूसरे स्तर के कैश का उपयोग कर रहा हूं। सब कुछ अच्छी तरह से काम कर रहा है, मैं दूसरी-स्तरीय कैश से इकाइयां प्राप्त कर सकता हूं वे पहले से ही चुने गए थे।

अब, मेरे पास दो एप्लिकेशन हैं, वे दोनों उपयोग करते हैंएक ही डेटाबेस (ताकि वे दोनों एक ही तालिका, मान आदि का उपयोग करें)। 1. केवल-पढ़ने के लिए आवेदन केवल डेटाबेस से डेटा पढ़ा है, यह डेटाबेस को बिल्कुल भी संशोधित नहीं करता है। इसलिए, मैं चुनता हूं "READ_ ONLY" समसामयिक रणनीति दूसरे स्तर के कैश के लिए, एक बेहतर प्रदर्शन के उद्देश्य से। 2. रीड-राइट एप्लिकेशन डेटाबेस के डेटा को पढ़ने और लिखने के साथ-साथ यह डेटाबेस को संशोधित करता है। नतीजतन, मुझे चुनना होगा "READ_ WRITE" या "NONSTRICT_ READ_ WRITE" समवर्ती रणनीति दूसरे स्तर के कैश के लिए।

हालाँकि, समसामयिक रणनीति में असाइन किया गया हैप्रत्येक इकाई वर्ग का एनोटेशन, इसलिए मैं इसे प्रोग्राम में नहीं बदल सकता। (मैं JPA के लिए क्लास मैपिंग फ़ाइलों का उपयोग नहीं करता हूं, इसलिए मैं "मैपिंग फ़ाइलों का उपयोग कर सकता हूं, प्रत्येक एक ही एंटिटी क्लास के लिए एक अलग संगामना रणनीति के लिए।"

मेरा सवाल यह है कि, क्या मेरे 2 अलग-अलग अनुप्रयोगों के अनुसार मक्खी पर दूसरे स्तर के कैश की समवर्ती रणनीति को बदलने का एक अच्छा तरीका है?

उत्तर:

जवाब के लिए 2 № 1

मैंने हाइबरनेट का उपयोग नहीं किया है, लेकिन कम से कम यदि आपJPA का उपयोग करें यह एक डिस्क्रिप्शन की तैनाती फ़ाइल के साथ एक भी एनोटेशन को ओवरराइड करना संभव है। आपको तैनाती डिस्क्रिप्टर के साथ किसी भी विशिष्ट विक्रेता को भी ओवरराइड करने में सक्षम होना चाहिए।

दुर्भाग्य से मैं आपको एक उदाहरण नहीं दे सकता लेकिन आशा है कि यह आपकी मदद करता है।


जवाब के लिए 0 № 2

इसलिए, मुझे लगता है कि वर्तमान समाधान हैहाइबरनेट मैपिंग फ़ाइलों के साथ प्रत्येक संस्थाओं के सभी एनोटेशन को बदलें, ताकि विभिन्न तैनाती (आवेदन के साथ ही) के लिए, हम विभिन्न हाइबरनेट मैपिंग फ़ाइलों का उपयोग कर सकें।