Mastering JPA All the source code for JPA(with hibernate) JPA Basics : 1. Creating an Entity 2. Primary key id generation 3. Handling enums 4. Handling enums - @Enumerated - EnumType.STRING 5. @ElementCollection - List 6. @ElementCollection - Map 7. Working with LocalDateTime/OffsetDateTime 8. @Embeddable and @Embedded 9. Entity AttributeConverter 10. Entity Lifecycle Callbacks Hibernate First Level Cache : 1. Hibernate First Level Cache 2. Hibernate First Level Cache Entity Relationships : 1. Many to One Relationship - Unidirectional 2. Many to One or One to Many Relationship - Bidirectional 3. One to One Relationship - Unidirectional 4. One to One Relationship - Bidirectional 5. Many to Many Relationship - Bidirectional 6. Hibernate Programmatic Configuration Entity Relationship Cascade Types : 1. cascade : CascadeType.PERSIST 2. cascade : CascadeType.REMOVE Entity Relationship Fetch Types : 1. fetch : FetchType.LAZY 2. fetch : FetchType.EAGER Orphan Removal : 1. Orphan Removal JPA Queries : 1. Native SQL query 2. JPQL 3. Named Query (Named JPQL) 4. Named native query 5. Criteria API N+1 Select Problem and Solution : 1. N+1 Select Problem 2. N+1 Solution : Join Fetch 3. N+1 Solution : Entity Graph 4. N+1 Solution : Named Entity Graph