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

जावा में CrudRepository और JpaRepository के बीच अंतर

CrudRepository और JPA Repository दोनों स्प्रिंग डेटा रिपॉजिटरी लाइब्रेरी के इंटरफेस हैं। स्प्रिंग डेटा रिपॉजिटरी विभिन्न पर्सिस्टेंस लेयर्स के लिए डेटा लेयर तक पहुंचने के लिए कुछ पूर्वनिर्धारित फाइंडर्स प्रदान करके बॉयलरप्लेट कोड को कम करती है।

JPA Repository, CrudRepository और PagingAndSorting Repository को एक्सटेंड करता है। यह Crud Repository से कुछ फाइंडर्स इनहेरिट करता है जैसे findOne, save, delete। यह JPA से संबंधित कुछ अतिरिक्त मेथड्स भी प्रदान करता है जैसे बैच में रिकॉर्ड डिलीट करना, डेटा को सीधे डेटाबेस में फ्लश करना और पेजिनेशन और सॉर्टिंग से संबंधित मेथड्स।

हमें अपने एप्लिकेशन में इस रिपॉजिटरी को एक्सटेंड करने की आवश्यकता होती है और फिर हम इन रिपॉजिटरीज में उपलब्ध सभी मेथड्स को एक्सेस कर सकते हैं। हम बिजनेस आवश्यकताओं के आधार पर नेम्ड या नेटिव क्वेरीज का उपयोग करके नए मेथड्स भी जोड़ सकते हैं।

क्र.सं. मुख्य बिंदु JpaRepository CrudRepository
1 हायरार्की JPA, CrudRepository और PagingAndSorting Repository को एक्सटेंड करता है Crud Repository बेस इंटरफेस है और यह मार्कर इंटरफेस के रूप में कार्य करता है
2 बैच सपोर्ट JPA JPA से संबंधित कुछ अतिरिक्त मेथड्स भी प्रदान करता है जैसे बैच में रिकॉर्ड डिलीट करना और डेटा को सीधे डेटाबेस में फ्लश करना यह केवल CRUD फंक्शन्स प्रदान करता है जैसे findOne, save, आदि
3 पेजिनेशन सपोर्ट JPA Repository PagingAndSorting Repository को भी एक्सटेंड करता है। यह पेजिनेशन इम्प्लीमेंट करने के लिए उपयोगी सभी मेथड्स प्रदान करता है Crud Repository पेजिनेशन और सॉर्टिंग इम्प्लीमेंट करने के लिए मेथड्स प्रदान नहीं करता
4 यूज केस JpaRepository आपके रिपॉजिटरीज को JPA पर्सिस्टेंस टेक्नोलॉजी से बांधता है इसलिए इससे बचना चाहिए हमें CrudRepository या PagingAndSortingRepository का उपयोग करना चाहिए यह निर्भर करता है कि आपको सॉर्टिंग और पेजिंग की आवश्यकता है या नहीं

JpaRepository का उदाहरण

@Repository
public interface BookDAO extends JpaRepository<Book, Integer> {
    Book findByAuthor(@Param("id") Integer id);
}

CrudRepository का उदाहरण

@Repository
public interface BookDAO extends CrudRepository<Book, Integer> {
    Book findById(@Param("id") Integer id);
}

इंटरफेस हायरार्की

Repository (मार्कर इंटरफेस)
    ↓
CrudRepository<T, ID> (बेसिक CRUD ऑपरेशन्स)
    ↓
PagingAndSortingRepository<T, ID> (पेजिनेशन और सॉर्टिंग)
    ↓
JpaRepository<T, ID> (JPA स्पेसिफिक: flush, batch delete, आदि)

मुख्य मेथड्स तुलना

मेथड CrudRepository JpaRepository
save()✓✓
findById()✓✓
delete()✓✓
flush()✗✓
saveAndFlush()✗✓
deleteInBatch()✗✓
findAll(Pageable)✗✓
findAll(Sort)✗✓

बेस्ट प्रैक्टिस

सबसे विशिष्ट इंटरफेस चुनें जो आपकी आवश्यकताओं को पूरा करता हो। यदि केवल बेसिक CRUD चाहिए तो CrudRepository, यदि पेजिनेशन/सॉर्टिंग चाहिए तो PagingAndSortingRepository, यदि JPA-स्पेसिफिक फीचर्स चाहिए तो JpaRepository।

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

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

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

    CrudRepository और JPA Repository दोनों स्प्रिंग डेटा रिपॉजिटरी लाइब्रेरी के इंटरफेस हैं। स्प्रिंग डेटा रिपॉजिटरी विभिन्न पर्सिस्टेंस लेयर्स के लिए डेटा लेयर तक पहुंचने के लिए कुछ पूर्वनिर्धारित फाइंडर्स प्रदान करके बॉयलरप्लेट कोड को कम करती है। JPA Repository, CrudRepository और PagingAndSorting Rep

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

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