Tổng Kết Module 04: Nền Tảng JPA và Ánh Xạ Thực Thể
Hệ thống hóa kiến thức ORM impedance mismatch, EntityManager, chiến lược sinh khóa @Id, ánh xạ @Enumerated, @Embeddable và an toàn equals/hashCode.
Bạn vừa hoàn thành Module 04 về nền tảng JPA & kỹ thuật ánh xạ entity nâng cao trong Spring Boot. Dưới đây là bảng tổng hợp các khái niệm then chốt và danh sách tự đánh giá năng lực.
Cheat sheet
| Khái niệm | Nguyên lý kỹ thuật cốt lõi | Bài học |
|---|---|---|
| ORM 3 Tầng | JPA (đặc tả) → Hibernate (triển khai) → Spring Data JPA (tiện ích proxy tự động). | 01, 02 |
| Persistence Context | First-Level Cache duy trì identity guarantee, gom lệnh hoãn phát SQL và tự động dirty checking. | 02 |
| POJO Contract | Bắt buộc no-arg constructor, class non-final, field mutable. Java record chỉ dùng cho DTO. | 03 |
| Chiến Lược @Id | IDENTITY (chặn batch), SEQUENCE (pre-fetch tối ưu batch), UUID v7 (sinh local, giữ trật tự B-tree). | 03 |
| Ánh Xạ Thuộc Tính | SpringPhysicalNamingStrategy tự chuyển camelCase sang snake_case. Luôn dùng EnumType.STRING. | 04 |
| Value Object | @Embeddable gom nhóm dữ liệu hướng đối tượng và lưu inline trong cùng bảng không cần JOIN. | 04 |
| Entity Equals/HashCode | Dùng instanceof tương thích Hibernate proxy, so sánh ID an toàn, trả về hashCode hằng số. Cấm @Data. | 05 |
✅ Self-assessment
Bạn đã làm chủ hoàn toàn Module 04 khi tự tin hoàn thành các mục tiêu sau:
- Explain ORM impedance mismatch và 3 layer (JPA/Hibernate/Spring Data)
- Implement @Entity đúng yêu cầu + @Id generation strategies
- Compare @Enumerated STRING vs ORDINAL và @Embeddable value object
- Design equals/hashCode cho entity null-safe
Liên hệ các module khác
- Module 05: Repository & Queries: Nâng cấp truy vấn dữ liệu với derived query methods,
@QueryJPQL/Native, phân trangPageablevà tối ưuSlice.
Module tiếp theo: Repository & Queries
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.
Entity Lifecycle và equals/hashCode Trong JPA
Bài tiếp Repository & QueriesRepository & Queries — tổng quan
Lộ trình Junior Java Backend Developer
Chặng 16/21 · Spring Data JPA — bài 7/20 của chặng
Thảo luận & góp ý
Hỏi đáp về bài này