OLHub

Spring Data JPA

ORM với Hibernate, Spring Data Repository abstraction, relationships, transactions, Flyway migration, pagination. TaskFlow v2 — migrate từ in-memory sang PostgreSQL persistence.

8 bài · ~208 phútMiễn phí

Nội dung

Danh sách bài học

  1. 01

    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.

    ~24 phút
  2. 02

    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.

    ~24 phút
  3. 03

    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.

    ~24 phút
  4. 04

    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.

    ~26 phút
  5. 05

    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.

    ~26 phút
  6. 06

    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.

    ~22 phút
  7. 07

    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.

    ~22 phút
  8. 08

    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.

    ~40 phút