मैं एक उदाहरण के साथ सवाल प्रस्तुत करता हूं।वसंत डेटा जेपीए - एक लौटाई गई इकाई में परिवर्तन क्यों स्वचालित रूप से बने रहते हैं?
का दावा है कि हम इस तरह के नीचे के रूप में एक भंडार है:,
T findOne(ID id);
अब, मुझे लगता है कि देखा है:
public interface ExampleObjectRepository extends CrudRepository<ExampleObject, Long> {
}
JpaRepository
इंटरफ़ेस विस्तार करके, ExampleObject
भंडार निम्न विधि विरासत अगर मुझे इस विधि को कॉल करने के बाद exampleObject का संदर्भ प्राप्त होता है, तो मैं इस विधि में जो भी जोड़ता हूं, वह स्वचालित रूप से डेटाबेस में सहेजा जाता है, उदाहरण के लिए:
ExampleObject pointInCase = exampleObjectRepository.findOne(1L);
pointInCase.setName("Something else");
विषय के चारों ओर पढ़ना, मैं यह संकेतों को समझता हूं कि ExampleObject
उदाहरण not detached
है।
यह मेरी अपेक्षाओं के विरुद्ध चला जाता है। मैं उम्मीद है कि मैं परिवर्तनों को सहेजने के लिए बचाने के लिए विधि CrudRepository
से विरासत में मिला उनका उपयोग करना होगा:
T save(T entity);
चाहेंगे किसी को भी इस बात की पुष्टि करने के लिए तरह पर्याप्त है कि वस्तुओं एक स्प्रिंग डाटा जेपीए भंडार से लौटे मानक के रूप में संलग्न रहते हैं हो , और रिपॉजिटरी में किसी विधि को चिह्नित करने के लिए एपीआई का उपयोग कैसे करें, यह बताएं कि यह केवल अलग संदर्भ देता है?
मुझे लगता है कि इकाई की स्थिति को बदलने से इसकी परिभाषा भी बदल सकती है जब इसका उपयोग save(T entity)
विधि के साथ किया जाता है, इसलिए मैं यह समझने की भी सराहना करता हूं कि अद्यतनों की पहचान कैसे की जाती है।
आपकी टिप्पणियों के लिए धन्यवाद - वे निश्चित रूप से कार्यालय के आसपास अन्य राय के साथ संगत हैं!हालांकि इस मामले में कि कई पीओजेओ मैनिपुलेशन लेनदेन के हिस्से के रूप में किए जाते हैं, क्या यह व्यवहार विधि की लेनदेन संबंधी प्रकृति को तोड़ देगा? – 8bitjunkie
यह क्यों होगा? आप एक लेनदेन शुरू करते हैं, किसी भी संख्या में आप जो भी संशोधन चाहते हैं उसे संशोधित करें और अपनी इच्छित संस्थाओं के प्रकार बनाएं, और फिर लेनदेन करें। या तो सभी परिवर्तन किए गए हैं, या सभी परिवर्तन रोलबैक हैं। किसी विधि का लेनदेन संबंधी पहलू यह भी लागू होने वाली प्रत्येक आंतरिक विधि पर लागू होता है: लेनदेन संदर्भ प्रचारित होता है। –
तो ... कॉलिंग 'सेव' विधि अनावश्यक है जब तक कि आप अलग न हों? या मुझे यह सुनिश्चित करने के लिए कुछ और तरीका कहना चाहिए कि जेपीए रोलबैक के बजाय लेनदेन बंद कर दे? – kiedysktos