Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

स्प्रिंग जावा में Save और SaveAndFlush के बीच अंतर

Save और saveAndFlush दोनों एंटिटीज को सेव करने के लिए उपयोग किए जा सकते हैं। वे दोनों स्प्रिंग डेटा लाइब्रेरी से संबंधित हैं। save आपके परिवर्तनों को सीधे DB में लिख भी सकता है और नहीं भी। जब हम saveAndFlush को कॉल करते हैं तो सिस्टम आपके मॉडल स्टेट के साथ DB के सिंक्रोनाइजेशन को लागू करता है।

क्र.सं. मुख्य बिंदु Save SaveAndFlush
1 रिपॉजिटरी यह CrudRepository से संबंधित है यह JpaRepository से संबंधित है
2 डेटा फ्लश स्ट्रेटेजी यह डेटा को सीधे डेटाबेस में फ्लश नहीं करता जब तक कि हम एक्सप्लिसिटली flush और commit मेथड न कॉल करें यह डेटा को सीधे डेटाबेस में फ्लश करता है
3 बल्क सेव CrudRepository बल्क सेव मेथड प्रदान करता है saveAndFlush मेथड बल्क ऑपरेशन को सपोर्ट नहीं करता
4 सेव करने के बाद डेटा विजिबिलिटी यह डेटा को सीधे डेटाबेस में फ्लश नहीं करता, इसलिए परिवर्तन ट्रांजैक्शन के बाहर तब तक विजिबल नहीं होंगे जब तक हम इसी ट्रांजैक्शन में एक्सप्लिसिटली commit() न कॉल करें परिवर्तन ट्रांजैक्शन के बाहर भी विजिबल होंगे
5 यूज केस हम इस मेथड का उपयोग तब करते हैं जब हमें उसी ट्रांजैक्शन में बाद में सेव किए गए परिवर्तनों का उपयोग करने की आवश्यकता नहीं होती हम इस मेथड का उपयोग तब करते हैं जब हमें उसी ट्रांजैक्शन में बाद में सेव किए गए परिवर्तनों का उपयोग करने की आवश्यकता होती है

तकनीकी विवरण

  • save(): EntityManager.persist() या merge() को कॉल करता है, फ्लश बाद में होता है (ट्रांजैक्शन कमिट पर या मैन्युअल फ्लश पर)
  • saveAndFlush(): save() के बाद तुरंत EntityManager.flush() कॉल करता है, जिससे SQL तुरंत एक्जीक्यूट होता है

कब किसका उपयोग करें?

  • save(): बैच ऑपरेशन्स, परफॉरमेंस क्रिटिकल ऑपरेशन्स, जब तत्काल DB सिंक की आवश्यकता न हो
  • saveAndFlush(): जब तुरंत ID जनरेशन चाहिए (उदाहरण: ऑटो-जनरेटेड ID), ट्रांजैक्शन के भीतर अन्य क्वेरीज को डेटा विजिबल करना हो, ऑप्टिमिस्टिक लॉकिंग वेरिफिकेशन

नोट

saveAndFlush का अत्यधिक उपयोग परफॉरमेंस को प्रभावित कर सकता है क्योंकि यह हर कॉल पर डेटाबेस राउंड-ट्रिप को बाध्य करता है।

  1. - जावा में Iterator और Enumeration के बीच अंतर

    Iterator और Enumeration दोनों कलेक्शन से एलिमेंट्स को ट्रैवर्स और एक्सेस करने के लिए कर्सर हैं। वे दोनों कलेक्शन फ्रेमवर्क से संबंधित हैं। Enumeration JDK 1.0 में जोड़ा गया था और Iterator JDK 1.2 वर्जन में कलेक्शन फ्रेमवर्क में जोड़ा गया। Enumeration कलेक्शन में स्ट्रक्चरल चेंज नहीं कर सकता क्योंकि

  1. - स्प्रिंग जावा में Save और SaveAndFlush के बीच अंतर

    Save और saveAndFlush दोनों एंटिटीज को सेव करने के लिए उपयोग किए जा सकते हैं। वे दोनों स्प्रिंग डेटा लाइब्रेरी से संबंधित हैं। save आपके परिवर्तनों को सीधे DB में लिख भी सकता है और नहीं भी। जब हम saveAndFlush को कॉल करते हैं तो सिस्टम आपके मॉडल स्टेट के साथ DB के सिंक्रोनाइजेशन को लागू करता है। क

  1. - Java में ArrayList और HashSet के बीच अंतर

    HashSet और ArrayList दोनों Java कलेक्शन फ्रेमवर्क के सबसे महत्वपूर्ण क्लासेस में से कुछ हैं।ArrayList और HashSet के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।क्रमांकमुख्य बिंदुArrayListHashSet1कार्यान्वयनArrayList लिस्ट इंटरफेस का कार्यान्वयन है।दूसरी ओर HashSet सेट इंटरफेस का कार्यान्वयन है।2आंतरिक कार्या