| Introduction |
ORM Concepts, Benefits of Hibernate, JPA vs Hibernate |
✅ |
|
|
|
| Configuration |
hibernate.cfg.xml, Properties, Annotations, Persistence.xml |
✅ |
✅ |
|
|
| Session & SessionFactory |
Session lifecycle, openSession vs getCurrentSession, Thread safety |
✅ |
✅ |
|
|
| Mapping Basics |
Entity mapping, @Entity, @Table, @Id, @GeneratedValue |
✅ |
|
|
|
| Relationships |
One-to-One, One-to-Many, Many-to-One, Many-to-Many |
✅ |
✅ |
|
|
| Inheritance |
Single Table, Joined, Table per Class strategies |
|
✅ |
✅ |
|
| HQL & JPQL |
Queries, Named Queries, Parameters, Pagination |
|
✅ |
✅ |
|
| Criteria API |
Restrictions, Projections, Order, Pagination |
|
✅ |
✅ |
|
| Native SQL |
SQL Queries, Mapping results, Stored Procedures |
|
✅ |
✅ |
|
| Caching |
First-level, Second-level, Query cache, Cache providers (Ehcache, Infinispan) |
|
|
✅ |
✅ |
| Transactions |
Transaction API, ACID properties, Declarative Transactions |
✅ |
✅ |
✅ |
|
| Fetching |
Lazy vs Eager loading, N+1 problem, Fetch Joins |
|
✅ |
✅ |
✅ |
| Batch Processing |
Bulk updates, Batch size, StatelessSession |
|
|
✅ |
✅ |
| Performance Tuning |
Query optimization, Fetch strategies, Cache tuning |
|
|
✅ |
✅ |
| Event System |
Interceptors, EventListeners, Entity lifecycle callbacks |
|
|
✅ |
✅ |
| Validation |
JSR-303 Bean Validation, @Valid, @NotNull |
✅ |
✅ |
|
|
| Spring Integration |
Spring Boot + Hibernate, Transaction Management |
|
✅ |
✅ |
✅ |
| Advanced Mappings |
Composite keys, @EmbeddedId, @MapsId, Join tables |
|
|
✅ |
✅ |
| Multi-tenancy |
Database-level, Schema-level, Discriminator strategies |
|
|
|
✅ |
| Hibernate & JPA 2.x+ |
CriteriaBuilder, Metamodel API, TypedQuery |
|
✅ |
✅ |
✅ |
| Concurrency |
Optimistic vs Pessimistic locking, Versioning |
|
|
✅ |
✅ |
| Migration & Versioning |
Flyway, Liquibase with Hibernate, Schema evolution |
|
|
✅ |
✅ |
| Native Integration |
Hibernate with NoSQL (OGM), Search (Lucene/Elasticsearch) |
|
|
|
✅ |
| Testing |
In-memory DBs (H2), Unit & Integration Testing |
✅ |
✅ |
✅ |