मैं स्प्रिंग डेटा जेपीए से थोड़ा भ्रमित हूं। क्या कोई निम्नलिखित की व्याख्या कर सकता है?

आइए कल्पना करें कि मेरे पास इंटरफ़ेस है

@Repository
public interface UserRepository extends PagingAndSortingRepository<User, Long> {
}

वास्तव में PagingAndSortingRepository के कार्यान्वयन का रनटाइम में क्या उपयोग किया जाएगा?

और मुझे इस भंडार का उपयोग करने वाले वर्ग या विधियों पर @Transactional एनोटेशन डालने की आवश्यकता है?

0
Konstantin 22 अक्टूबर 2020, 13:14

1 उत्तर

सबसे बढ़िया उत्तर

PagingAndSortingRepository में घोषित विधियों के कार्यान्वयन को SimpleJpaRepository में परिभाषित किया गया है।

यदि आप लेन-देन के भीतर जो कुछ करना चाहते हैं, उसे एक ही रिपोजिटरी कॉल द्वारा नियंत्रित किया जाता है, तो आपको किसी अतिरिक्त @Transactional की आवश्यकता नहीं होती है, लेकिन आम तौर पर आप चाहते हैं कि लेनदेन एक कॉल या कम से कम एक लोड ऑपरेशन को और अधिक कवर करे और बाद में एक इकाई का हेरफेर। उन मामलों में आप आमतौर पर @Transactional के साथ एनोटेट की गई विधि का उपयोग करेंगे। लेकिन आप उदाहरण के लिए एक TranactionTemplate का भी उपयोग कर सकते हैं जो कि कुछ विशेष प्रकार के परीक्षणों में उदाहरण के लिए विशिष्ट हो सकता है।

1
Jens Schauder 22 अक्टूबर 2020, 20:15