CrudRepository और JPA रिपॉजिटरी दोनों ही स्प्रिंग डेटा रिपॉजिटरी लाइब्रेरी का इंटरफ़ेस हैं। स्प्रिंग डेटा रिपोजिटरी विभिन्न दृढ़ता परतों के लिए डेटा स्तर तक पहुंचने के लिए कुछ पूर्वनिर्धारित खोजकर्ता प्रदान करके बॉयलरप्लेट कोड को कम करता है।
JPA रिपॉजिटरी CrudRepository और PagingAndSorting रिपॉजिटरी का विस्तार करती है। यह कुछ खोजकर्ताओं को क्रूड रिपॉजिटरी से प्राप्त करता है जैसे कि फाइंडऑन, एक इकाई को प्राप्त करता है और हटाता है। यह जेपीए से संबंधित कुछ अतिरिक्त तरीके भी प्रदान करता है जैसे बैच में रिकॉर्ड हटाना, डेटा को सीधे डेटाबेस बेस पर फ्लश करना और पेजिनेशन और सॉर्टिंग से संबंधित विधियां।
हमें अपने आवेदन में इस भंडार का विस्तार करने की जरूरत है और फिर हम इन भंडारों में उपलब्ध सभी विधियों तक पहुंच सकते हैं। हम व्यावसायिक आवश्यकताओं के आधार पर नामित या मूल प्रश्नों का उपयोग करके नई विधियां भी जोड़ सकते हैं।
Sr. नहीं. | कुंजी | JPARRepository | CrudRepository |
---|---|---|---|
1 | पदानुक्रम | JPA crudRepository और PagingAndSorting रिपॉजिटरी का विस्तार करता है | Crud Repository आधार इंटरफ़ेस है और यह एक मार्कर इंटरफ़ेस के रूप में कार्य करता है। |
2 | बैच समर्थन | JPA, JPA से संबंधित कुछ अतिरिक्त तरीके भी प्रदान करता है जैसे बैच में रिकॉर्ड हटाना और डेटा को सीधे डेटाबेस में फ़्लश करना। | यह केवल CRUD फ़ंक्शन प्रदान करता है जैसे कि FindOne, सेव आदि। |
3 | पेजिनेशन सपोर्ट | जेपीए रिपोजिटरी पेजिंगएंडसॉर्टिंग रिपोजिटरी का भी विस्तार करता है। यह सभी तरीके प्रदान करता है जिसके लिए पेजिनेशन को लागू करने के लिए उपयोगी हैं। | क्रूड रिपोजिटरी पेजिनेशन और सॉर्टिंग को लागू करने के तरीके प्रदान नहीं करता है। |
4 | केस का प्रयोग करें | JpaRepository आपके रिपॉजिटरी को JPA दृढ़ता तकनीक से जोड़ता है, इसलिए इसे टाला जाना चाहिए। | हमें CrudRepository या PagingAndSortingRepository का उपयोग इस आधार पर करना चाहिए कि आपको सॉर्टिंग और पेजिंग की आवश्यकता है या नहीं। |
JpaRepository का उदाहरण
@Repository public interface BookDAO extends JpaRepository { Book findByAuthor(@Param("id") Integer id); }
क्रूड रिपोजिटरी का उदाहरण
@Repository public interface BookDAO extends CrudRepository { Book Event findById(@Param("id") Integer id); }