Nội dung
Danh sách bài học
- 01~24 phút
JPA & Hibernate — ORM principle, Spring Data abstraction layers
JPA là spec, Hibernate là implementation, Spring Data JPA là abstraction trên Hibernate. Bài này bóc 3 layer, ORM impedance mismatch, EntityManager lifecycle, persistence context, JPQL vs SQL, và tại sao Spring Data sinh được implementation từ interface.
- 02~24 phút
Entity mapping — @Entity, @Id, @GeneratedValue, naming strategy
Entity là Java class map sang DB table. Bài này bóc tách @Entity requirements (no-arg ctor, mutable, equals/hashCode), @Id strategies (IDENTITY/SEQUENCE/UUID), @Column/@Table customization, naming strategy SnakeCaseStrategy, @Embeddable, @Enumerated, lifecycle callbacks.
- 03~24 phút
Repository abstraction — JpaRepository, derived queries, @Query
Spring Data JPA sinh implementation từ interface. Bài này bóc 3 tier method: built-in (JpaRepository), derived query (method name parsing), @Query (JPQL/native), dynamic query qua Specification, projection DTO, modifying queries, và Pageable.
- 04~26 phút
Relationships — @OneToMany, @ManyToOne, lazy vs eager, N+1 problem
JPA relationships map associations object → foreign key. Bài này bóc 4 association type, owning vs inverse side, fetch type LAZY/EAGER, N+1 problem cause + 4 fix (fetch join, EntityGraph, batch size, projection), cascade types, orphan removal.
- 05~26 phút
Transactions — @Transactional, propagation, rollback rules
@Transactional là 1 trong annotation quan trọng nhất Spring. Bài này bóc 7 propagation, 5 isolation level, rollback rules (RuntimeException vs checked), readOnly optimization, AOP proxy mechanism, self-invocation pitfall, transaction events, và testing transactional behavior.
- 06~22 phút
Flyway migration — DB schema versioning
Flyway tự động version + apply migration script. Bài này bóc cơ chế Flyway, naming convention V/U/R, autoconfig Boot, schema_history table, rollback strategy, baseline existing DB, và pattern multi-environment migration.
- 07~22 phút
Pagination & sorting — Pageable, Sort, projection DTO, cursor scroll
Pageable + Sort là API chuẩn cho list endpoint. Bài này bóc cơ chế OFFSET/LIMIT, performance impact deep page, alternatives Slice và keyset pagination, sort multi-field, projection DTO cho perf, validation Pageable, và pattern Spring Data Web.
- 08~40 phút
Mini-challenge: TaskFlow v2 — Postgres + JPA capstone
Migrate TaskFlow Module 03 từ in-memory ConcurrentHashMap sang PostgreSQL với Spring Data JPA. Setup Flyway, JPA entities (Project + Task + User + Comment), relationships, fix N+1, projection DTO, transactions, integration test với Testcontainers.