CascadeType.REFRESHवास्तव में क्या करता है?
इसके लिए परिभाषा है
जब हम एक इकाई को ताज़ा करते हैं तो इस क्षेत्र में आयोजित सभी निकाय भी ताज़ा हो जाते हैं
लेकिन व्यवहार में इसका क्या मतलब है? क्या कोई मुझे एक सरल उदाहरण दे सकता है?
जवाबों:
व्यक्तिगत CascadeType विवरण थोड़ा भ्रमित करने वाला हो सकता है, लेकिन सामान्य मामले से यह पता लगाने का एक आसान तरीका है।
किसी भी CascadeTypeमान के लिए, इसका मतलब है कि यदि इंटरफ़ेस Xका उपयोग करके एक उदाहरण पर ऑपरेशन को बुलाया जाता EntityManagerहै, और उस उदाहरण में अन्य इकाई उदाहरणों का संदर्भ होता है, और उस एसोसिएशन ने CascadeType.Xपरिभाषित किया है, तो EntityManagerऑपरेशन उस संबंधित इकाई पर भी लागू होगा।
तो इस EntityManager.refresh()प्रकार परिभाषित किया गया है:
डेटाबेस से उदाहरण की स्थिति को ताज़ा करें, यदि कोई हो, तो इकाई में किए गए ओवरराइटिंग परिवर्तन।
इसलिए यदि इकाई A में इकाई B का संदर्भ है, और उस संदर्भ को एनोटेट किया जाता है @CascadeType.REFRESH, और EntityManager.refresh(A)उसे बुलाया जाता है, तो EntityManager.refresh(B)निहित रूप से इसे भी कहा जाता है।
ताज़ा करके पुनर्प्राप्ति: प्रबंधित ऑब्जेक्ट्स को रीफ़्रेश विधि का उपयोग करके डेटाबेस से पुनः लोड किया जा सकता है:
स्मृति में प्रबंधित ऑब्जेक्ट की सामग्री को छोड़ दिया जाता है (परिवर्तन, यदि कोई हो तो) और डेटाबेस से पुनर्प्राप्त डेटा द्वारा प्रतिस्थापित किया जाता है। यह सुनिश्चित करने के लिए उपयोगी हो सकता है कि एप्लिकेशन किसी निकाय ऑब्जेक्ट के सबसे अद्यतित संस्करण के साथ सौदा करता है, बस मामले में इसे किसी अन्य EntityManager द्वारा बदला जा सकता है क्योंकि यह पुनर्प्राप्त किया गया था।
स्रोत: http://www.objectdb.com/java/jpa/persistence/retrieve