stored procedures - How to create temporary tables in Hibernate? -


लक्ष्य

  1. एक बनाएँ अस्थायी सारणी बनाएं देशी एसक्यूएल का उपयोग किए बिना हाइबरनेट में स्टेटमेंट इसका मतलब है कि HQL या Hibernate API का प्रयोग केवल।
  2. ऑब्जेक्ट को अस्थायी तालिका में सहेजें।
  3. एक संग्रहीत कार्यविधि को प्रारंभ करें जो मौजूदा तालिकाओं और अस्थायी तालिका का उपयोग करता है।
  4. < Li> DROP समाप्त होने पर अस्थायी तालिका (मुझे पता है कि यह आवश्यक नहीं है, लेकिन मुझे लगता है कि ऐसा करने की अच्छी आदत है।)

पृष्ठभूमि

  1. एसक्यूएल से बहुत परिचित है लेकिन सीतनिद्रा में होना नई है।
  2. मुझे एक परियोजना में हाइबरनेट का उपयोग करने के लिए मजबूर होना है, आप जानते हैं, किसी के निर्णय।
  3. मैं एक वेब प्रपत्र में एक ओरेकल डाटाबेस के लिए।
  4. वेब प्रपत्र में प्रत्येक सेल में एक पाठ फ़ील्ड (किसी और के द्वारा डिज़ाइन) से भरा एक टेबल है।
  5. जब उपयोगकर्ता सहेजें , एक एकल लेनदेन में जरूरी सहेजा जा सकता है।
  6. वेब फ़ॉर्म का डेटाबेस दृश्य द्वारा बैकअप लिया जाता है।
  7. ईएवी पैटर्न का उपयोग कर डेटाबेस तालिका से डेटाबेस दृश्य बनाया गया है (यह इसलिए किया जाता है क्योंकि कॉलम किसी तरह गतिशील हैं।)
  8. वेब प्रपत्र में प्रत्येक टेक्स्ट फ़ील्ड को डेटाबेस तालिका में एक पंक्ति द्वारा तैयार किया जाता है।
  9. वेब फ़ॉर्म प्रदर्शित करना < दृश्य पर कोड> सेलेक्ट स्टेटमेंट्स।
  10. वेब प्रपत्र को अद्यतन करने से दृश्य पर UPDATE स्टेटमेंट का उपयोग होता है, जो INSTEAD OF ट्रिगर करता है देखें।
  11. केवल परिवर्तित मान अपडेट किए जाते हैं। प्रत्येक अपडेट के लिए एक ऑडिट ट्रेल है।
  12. यदि उपयोगकर्ता के नोटिस के बिना किसी भी अन्य उपयोगकर्ता द्वारा मूल्यों को अपडेट किया गया है, तो लेन-देन वापस लुढ़का है। इस तरह के परिदृश्य के लिए यहां एक उदाहरण दिया गया है: (I) एक का मान 4 है जब उपयोगकर्ता वेब प्रपत्र (II) प्रदर्शित करता है उपयोगकर्ता उसी फ़ील्ड को 5 (III) को अपडेट करता है, पहले कोड को कोड को 2 पर अपडेट करता है और वेब फ़ॉर्म को सबमिट करता है।
  13. < / Ol>

    मूल रूप से प्रस्तावित समाधान

    1. टेक्स्ट फ़ील्ड में परिवर्तनों का पता लगाने के लिए एजेएक्स (jQuery) का उपयोग करें, और केवल उपयोगकर्ता द्वारा बदले में जमा करें।
    2. हालांकि, किसी अन्य उपयोगकर्ता द्वारा किए गए परिवर्तनों को डेटाबेस में पता होना चाहिए।

    समाधान बेहतर कार्य करने के लिए समर्थित

    1. जब उपयोगकर्ता सहेजें क्लिक करता है, तो एक अस्थायी तालिका बनाएं (एक अस्थायी तालिका एक मौजूदा मेजबान / कनेक्शन द्वारा केवल एक मेज दिखाई देती है, और जब सत्र बंद है / बंद करने पर) और ऑब्जेक्ट्स (सेल्स) को अस्थायी तालिका में सहेजें।
    2. कोई लेन-देन प्रारंभ करें।
    3. कुछ मौजूदा तालिकाओं को लॉक करें (या ओ
    4. मौजूदा आंकड़ों के साथ जमा आंकड़े की तुलना करें।
    5. यदि कोई भी अनियंत्रित परिवर्तन नहीं किया गया था, तो लेन-देन रोलबैक करें।
    6. अपडेट आवश्यक पंक्तियाँ।
    7. लेन-देन को तैयार करें और तालिकाओं को अनलॉक करें।
    8. अस्थायी तालिका ड्रॉप करें।

    क्या कोई विचार है?

यह आपकी सटीक आवश्यकताओं का जवाब नहीं देता है लेकिन यह देखते हुए कि उत्तर पर कोई प्रयास नहीं किया गया है ... क्या आपने विचार किया है कुछ तरह की तरह एक अस्थायी सीएसवी तालिका का उपयोग कर।

हालांकि यह सीतनिद्रा में होना के माध्यम से करने की आवश्यकता के अनुरूप नहीं है, यह डेटाबेस नास्तिक और क्रॉस प्लेटफॉर्म है।


Comments