# JPA व Hibernate — एडवांस्ड जावा

Source: https://www.geekswithgeeks.com/hi/advanced-java/adv-jpa-hibernate

> JPA एंटिटी व Hibernate से Java ऑब्जेक्ट को डेटाबेस टेबल से मैप करें, पर्सिस्टेंस कॉन्टेक्स्ट समझें, और N+1 सेलेक्ट समस्या पहचानकर ठीक करें।

## एंटिटी व पर्सिस्टेंस कॉन्टेक्स्ट

`@Entity` क्लास टेबल से मैप होती हैं; `EntityManager` परिवर्तन ट्रैक कर ट्रांज़ैक्शन में flush करता है।

```java
@Entity
class Book {
    @Id @GeneratedValue Long id;
    String title;
    @ManyToOne Author author;
}

interface BookRepository extends JpaRepository<Book, Long> {
    List<Book> findByAuthorName(String name);
}
```

## N+1 सेलेक्ट समस्या

N पैरेंट पंक्तियों के लिए अलग-अलग लोड करने पर N अतिरिक्त क्वेरी चलती हैं। `JOIN FETCH` या entity graph से ठीक करें।
