Hibernate Complete Interview Syllabus
The Ultimate Study Guide for Java/Spring Boot T3 & Client Interviews
Priority Order: What to Study First
🔴 Level 1 — Must Know
- JPA vs Hibernate, ORM & Entity
- Entity Lifecycle & Persistence Context
- 1st Level Cache & Dirty Checking
- Flush vs Commit & Transactions
- Relationships & mappedBy
- Cascade & orphanRemoval
- LAZY vs EAGER & N+1 Problem
- Optimistic Locking (@Version)
🟠Level 2 — T3/Client Level
- 2nd Level Cache & EntityGraph
- DTO Projection & Pagination
- Batch Processing & Connection Pooling
- Query Optimization & Execution Plans
- Composite Keys & equals/hashCode
- Hibernate Proxies & Locking
- Microservices & Outbox Pattern
🟢 Level 3 — Advanced
- Hibernate Internals & Action Queue
- Hibernate Events & Interceptors
- Envers (Auditing)
- Custom Types & Dialects
- Stored Procedures
- Performance Profiling
Recommended Learning Sequence
Don't memorize this as one huge list. Learn it as a sequential chain to build a foundational understanding.
1
ORM + JPA + Hibernate2
Entity + Mapping3
Entity Lifecycle4
Persistence Context5
Cache & Dirty Checking6
Relationships7
LAZY/EAGER & Proxies8
Cascade & orphanRemoval9
JPQL / HQL / Native SQL10
Transactions & Flush11
Spring Data JPA12
N+1 & JOIN FETCH13
Pagination & Projections14
Locking & Concurrency15
Caching & Batching16
Optimization & Tuning17
Microservices Architecture18
T3 Interview Scenarios
The Golden Chain of Hibernate
Entity → Persistence Context → Managed State → Dirty Checking → Flush → Transaction → SQL.
Master this flow, and the vast majority of Hibernate interview questions become straightforward system logic rather than pure memorization.
Master this flow, and the vast majority of Hibernate interview questions become straightforward system logic rather than pure memorization.
Deep Dive: Core Syllabus Topics
1. Hibernate Fundamentals
- What is Hibernate? Why is ORM required?
- Hibernate vs JDBC / Hibernate vs JPA
- Advantages, disadvantages, and limitations.
- Object-Relational Mapping concepts (Class → Table, Field → Column).
- Impedance mismatch (Object-oriented model vs relational model).
Application ↓ JPA APIs ↓ SessionFactory ↓ Session ↓ Transaction ↓ JDBC ↓ Database
2. JPA vs Hibernate
⭐⭐⭐⭐⭐
JPA is a specification. Hibernate is an implementation.
- JPA: Entity, EntityManager, Annotations (@OneToMany), JPQL.
- Hibernate: Session, SessionFactory, HQL, Extensions.
🔥 Interview Check:
Is JPA a framework? Can we use Hibernate without JPA? Why does Spring Boot commonly default to Hibernate?
3. Entity & Column Mapping
⭐⭐⭐⭐⭐
- @Entity, @Table, @Id
- ID Generation: AUTO, IDENTITY, SEQUENCE, TABLE.
- Columns: @Column, @Transient, @Enumerated.
🔥 Interview Check:
What is the exact database-level difference between IDENTITY and SEQUENCE ID generation?
4. Hibernate Entity Lifecycle
⭐⭐⭐⭐⭐
Transient → Managed / Persistent → Detached → Removed
- Transient: Exists only in Java memory (created via
newkeyword). - Managed: Tracked by Hibernate Session. Changes are synced to DB.
- Detached: Previously managed, but Session/EntityManager is now closed.
- Removed: Marked for deletion upon next flush/commit.
5. Persistence Context, Cache & Dirty Checking
⭐⭐⭐⭐⭐
The Persistence Context is the set of entities currently managed by the EntityManager. It acts as the mandatory First-Level Cache.
- Dirty Checking: Hibernate detects state changes during transaction synchronization and automatically fires an
UPDATEstatement without you explicitly calling a save method. - Lifecycle methods:
flush(),clear(),evict().
6. Relationships, mappedBy & Cascade
⭐⭐⭐⭐⭐
- @OneToOne, @OneToMany, @ManyToOne, @ManyToMany
- Owning vs Inverse Side: The entity containing the foreign key is the owner. The inverse side uses mappedBy.
- Cascades: PERSIST, MERGE, REMOVE, ALL. (Note: JPA Cascade is executed in Java memory, which is different from a database-level ON DELETE CASCADE).
7. LAZY vs EAGER & N+1 Problem
⭐⭐⭐⭐⭐
- LAZY: Load relationship only when accessed. EAGER: Load immediately (can cause massive performance degradation).
- LazyInitializationException: Thrown when trying to access a lazy collection after the Transaction has closed.
- The N+1 Problem: 1 query fetches the parent entity, triggering N subsequent queries to fetch the children.
🛠️ Production Solutions for N+1:
JOIN FETCH, @EntityGraph, Batch Fetching, DTO Projections. (Avoid answering "just change it to EAGER fetching" in an interview).
8. Transactions & Locking
⭐⭐⭐⭐⭐
- @Transactional boundaries, commit, rollback, and isolation levels.
- Optimistic Locking: Uses @Version. Detects concurrent update conflicts at commit time (throws
OptimisticLockException). - Pessimistic Locking: Uses database-level row locks (e.g.,
SELECT ... FOR UPDATE) to physically prevent concurrent modifications.
9. Entity vs DTO & API Design
⭐⭐⭐⭐⭐
- Entities represent the persistence model; DTOs represent the API data-transfer model.
- Why use DTOs? API decoupling, security (preventing mass assignment), avoiding lazy-loading JSON serialization errors, and preventing circular dependencies resulting in infinite recursion.
10. Common T3 Interview Scenarios
⭐⭐⭐⭐⭐
- 🚩 "An API takes 5 seconds to load and Hibernate executes 101 queries. What happened?"
Diagnosis: The N+1 problem. Fix it using aJOIN FETCHor an@EntityGraph. - 🚩 "Two users update the same record simultaneously."
Diagnosis: The Lost Update problem. Discuss implementing Optimistic Locking with a@Versionfield. - 🚩 "Saving 100,000 records causes an OutOfMemoryError."
Diagnosis: The Persistence Context got too large. Discuss JDBC batching, and callingflush()andclear()periodically inside the loop.
Comments (0)