session.flush()
फ़्लशिंग प्रक्रिया करेगा जो हाइबरनेट सत्र द्वारा प्रबंधित सभी निरंतर वस्तुओं के लिए गंदे चेक करने के बारे में है। अगर किसी ऑब्जेक्ट को गंदे माना जाता है (यानी उस हाइबरनेट सत्र में संग्रहीत ऑब्जेक्ट का कोई भी मान अलग है डेटाबेस में इसी रिकॉर्ड), हाइबरनेट हाइबरनेट सत्र में संग्रहीत ऑब्जेक्ट को संबंधित डेटाबेस रिकॉर्ड के साथ समान मानों को बनाने के लिए इन मतभेदों को सिंक्रनाइज़ करने के लिए तत्काल डीबी को अद्यतन एसक्यूएल जारी करेगा।
हालांकि, केवल अद्यतन एसक्यूएल जारी करने का मतलब यह नहीं है कि संशोधित डेटा वास्तव में डीबी में सहेजा गया है, आपको वास्तव में डीबी में संशोधित डेटा को सहेजने की पुष्टि करने के लिए लेनदेन को कम करना होगा। इसका मतलब है कि आप कर सकते हैं UPDATE SQL द्वारा किए गए परिवर्तनों को रोलबैक करें यदि अद्यतन SQL को जारी करने के बाद कोई भी त्रुटि पाई जाती है लेकिन लेनदेन करने से पहले।
हाइबरनेट सत्र का फ़्लशिंग व्यवहार FlushMode
पैरामीटर द्वारा निर्धारित किया जाता है जिसे session.setFlushMode() द्वारा कॉन्फ़िगर किया जा सकता है। डिफ़ॉल्ट मान FlushMode.AUTO
है जैसे session.flush()
लेनदेन करने और क्वेरी के निष्पादन से पहले स्वचालित रूप से होता है।
तो, जब session.getTransaction.commit()
डिफ़ॉल्ट FlushMode
में कहा जाता है, session.flush()
परोक्ष session.getTransaction.commit()
के निष्पादन से पहले निष्पादित किया जाएगा।
स्रोत
2012-03-31 06:56:08