2012-07-02 11 views
12

हाइबरनेट में फ्लश और प्रतिबद्धता के बीच क्या अंतर है?हाइबरनेट में फ्लश और प्रतिबद्धता के बीच क्या अंतर है?

+1

** आपने क्या समझने की कोशिश की? ** –

+0

मुझे विश्वास नहीं है कि इस सवाल को बंद करने के लिए मेरा वोट अस्वीकार कर दिया गया है। यह कैसे एक स्टैक ओवरफ्लो वैध सवाल है? – kommradHomer

उत्तर

5

जेडीबीसी कनेक्शन के राज्य को स्मृति में आयोजित वस्तुओं की स्थिति के साथ सिंक्रनाइज़ करने की प्रक्रिया को फ्लश कहा जाता है।

यह FlushMode सेट के आधार पर निम्नलिखित बातों पर होता है:

  • कुछ क्वेरी फांसी से पहले जब FlushMode.AUTO (यह डिफ़ॉल्ट है)।
  • org.hibernate.Transaction.commit से() जब FlushMode.COMMIT
  • Session.flush() से

मुख्य अंतर यह है कि जब FlushMode प्रतिबद्ध करने के लिए सेट कर दिया जाता, प्रतिबद्ध (है) सत्र flushes और काम की इकाई को भी समाप्त करता है और आप लेनदेन को रोलबैक नहीं कर सकते हैं, जहां फ्लश() सत्र की सामान्य सिंक करता है।

FlushMode

अधिक info

1

Hibernate docs

फ्लशिंग से persistable राज्य स्मृति में आयोजित के साथ अंतर्निहित लगातार दुकान सिंक्रनाइज़ करने की प्रक्रिया है।

ऊपर दिए गए बयान कुछ लोगों के लिए भ्रमित है जो अगले प्रश्न प्राप्त कर रहे हैं (यानी उपरोक्त बयान पढ़ने के बाद दिमाग में बी/डब्ल्यू फिर फ्लश और प्रतिबद्धता क्या है)।

फ्लश वास्तव में कथन निष्पादित करने की तरह है लेकिन इसे नहीं कर रहा है। उदाहरण के लिए: - आप किसी भी एसक्यूएल निष्पादन उपकरण जैसे ओरेकल SQLdeveloper खोलते हैं, एक सत्र और आग अद्यतन कथन खोलें। नया एसक्यूएल सत्र खोलें, आप तब तक अपडेट नहीं देख पाएंगे जब तक आप पहले सत्र में प्रतिबद्ध नहीं होते। इसलिए पूछताछ विशेष ओरेकल सत्र में निष्पादित हो गई लेकिन प्रतिबद्ध नहीं है।

जब आप हाइबरनेट सेव (या अपडेट) कहते हैं, तो इसका मतलब यह नहीं है कि अंतर्निहित क्वेरी एक ही समय में निष्पादित की जाती है। यह आम तौर पर तब निष्पादित होता है जब प्रतिबद्धता स्पष्ट रूप से या लेनदेन के अंत में की जाती है। लेकिन परिदृश्य हैं (जैसे कि बैच अपडेट में हाइबरनेट सत्र के आकार को नियंत्रित करने के लिए क्षणिक ऑब्जेक्ट को असाइन किया गया आईडी प्राप्त करना, अन्यथा आप मेम अपवाद से बाहर निकल सकते हैं) जहां आप क्वेरी निष्पादित करना चाहते हैं लेकिन इसे नहीं करना चाहते हैं। फ्लश यहां मदद करता है

+0

तो फ्लश ऑटो प्रतिबद्ध झूठी के साथ एक कथन निष्पादित करने की तरह है? –

+0

हाँ बिल्कुल सही आप सही हैं। –

संबंधित मुद्दे