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