जवाबों:
पर saveAndFlush
, परिवर्तन इस आदेश में तुरंत डीबी को प्लावित कर दिया जाएगा। इसके साथ save
, यह जरूरी नहीं है कि सच हो, और जब तक flush
या commit
आदेश जारी नहीं किए जाते हैं , तब तक सिर्फ स्मृति में रह सकते हैं।
लेकिन ध्यान रहे, कि अगर आप लेन-देन में परिवर्तन को रोकते हैं और उन्हें प्रतिबद्ध नहीं करते हैं, तो भी इस लेनदेन में परिवर्तन तब तक बाहरी लेनदेन को दिखाई नहीं देंगे ।
आपके मामले में, आप शायद किसी प्रकार के लेन-देन तंत्र का उपयोग करते हैं, जो commit
आपके लिए आदेश जारी करता है यदि सब कुछ ठीक काम करता है।
हाइबरनेट फ्लश मोड पर निर्भर करता है जिसे आप उपयोग कर रहे हैं ( AUTO
डिफ़ॉल्ट है) save
सीधे अपने परिवर्तनों को डीबी को लिख सकता है या नहीं कर सकता है। जब आप कॉल saveAndFlush
करते हैं तो आप डीबी के साथ अपने मॉडल राज्य के सिंक्रनाइज़ेशन को लागू कर रहे हैं।
यदि आप फ्लश मोड ऑटो का उपयोग करते हैं और आप अपने एप्लिकेशन का उपयोग पहले सहेजने और फिर डेटा का चयन करने के लिए कर रहे हैं, तो आपको बीच में कोई अंतर नहीं दिखाई देगा save()
और saveAndFlush()
क्योंकि चयन पहले एक फ्लश को ट्रिगर करता है। डॉक्यूमेंटेशन देखें ।
save
एक इकाई और फिर से एक ही है, तो आप save
दूसरे आदेश के साथ मतलब उदाहरण के लिए दोहराव के लिए एक अपवाद नहीं फेंक देंगे ??