Spring REST API & Data JPA
41/46
Bài 41 / 46~4 phútRelationships & TransactionsLộ trình · chặng 16/21Miễn phí… lượt xem

Tổng Kết Module 06: Quan Hệ Thực Thể và Quản Trị Giao Dịch

Hệ thống hóa kiến thức về JPA Associations, Fetch Types, giải quyết dứt điểm bài toán N+1, cơ chế @Transactional AOP Proxy, Propagation và Isolation.

Bạn vừa hoàn thành Module 06 về hai chủ đề then chốt và phức tạp nhất trong JPA & Spring Data: liên kết thực thể (relationships) và quản trị giao dịch declarative (@Transactional). Dưới đây là bảng tổng hợp nguyên lý kỹ thuật và danh sách tự đánh giá năng lực.

Cheat sheet

Khái niệmNguyên lý kỹ thuật cốt lõiBài học
Owning vs Inverse SidePhía có @JoinColumn giữ FK và kiểm soát SQL; @OneToMany(mappedBy) là Inverse Side.01
Fetch Types@ManyToOne mặc định EAGER (cần override LAZY); giải quyết LazyInitializationException bằng DTO.01
N+1 Problem & FixPhát sinh do duyệt lazy proxy trong vòng lặp; giải quyết bằng JOIN FETCH, @EntityGraph, BatchSize, DTO.02
AOP Proxy & RollbackCGLIB Proxy can thiệp BEGIN/COMMIT; mặc định chỉ rollback khi gặp RuntimeException hoặc Error.03
Cạm Bẫy Self-InvocationLời gọi nội bộ qua this bỏ qua Proxy, vô hiệu hóa hoàn toàn @Transactional. Cần tách Service.03
PropagationREQUIRED gộp chung transaction (All-or-Nothing); REQUIRES_NEW mở transaction riêng biệt cho Audit Log.04
Isolation & readOnlyREAD_COMMITTED chuẩn Postgres; readOnly = true tắt dirty checking và tối ưu bộ nhớ heap.04

✅ Self-assessment

Bạn đã làm chủ hoàn toàn Module 06 khi tự tin hoàn thành các mục tiêu sau:

  • Explain 4 association + fetch type (LAZY/EAGER default)
  • Diagnose N+1 problem và 4 cách fix
  • Explain @Transactional AOP proxy + rollback rule + self-invocation
  • Compare propagation REQUIRED vs REQUIRES_NEW và isolation level

Liên hệ các module khác

  • Module 07: Migration & Capstone Project: Đưa toàn bộ kiến thức vào thực chiến với Flyway database migration, cấu trúc dự án chuẩn production và bài kiểm tra Capstone tổng kết khóa học.

Module tiếp theo: Migration & Capstone Project

Bài này có giúp bạn hiểu bản chất không?

Bài này đáng gửi cho bạn học cùng?

Copy link đã gắn nguồn — dán group, chat, hoặc LinkedIn.

Lộ trình Junior Java Backend Developer

✓ Bạn vừa đi hết chặng Spring Data JPA (16/21)

Chặng tiếp: Database migration (Flyway) — “Flyway Migration: Quản Trị Phiên Bản Schema Như Mã Nguồn”

Thảo luận & góp ý

Hỏi đáp về bài này

Bài tiếp theo

Migration & Capstone — tổng quan