inflearn logo
inflearn logo

Mô hình hóa dữ liệu sử dụng JPA

Đây là khóa học tập trung vào việc thiết kế mô hình dữ liệu thông qua thực thể (entity) hơn là giải thích về kỹ thuật JPA. Dựa trên nền tảng thiết kế DB vững chắc là cơ sở của việc phát triển ứng dụng, khóa học sẽ phân tích các mẫu thiết kế đa dạng như một-nhiều, nhiều-nhiều, kế thừa, collection cùng với các kịch bản kinh doanh thực tế, đồng thời giúp bạn học hỏi thông qua việc trực tiếp xác nhận quá trình chuyển đổi mã nguồn thành các bảng thực tế trên màn hình. Để có thể áp dụng ngay vào thực tiễn, khóa học cung cấp đầy đủ các ví dụ kinh doanh theo từng mẫu thiết kế, cùng với mã nguồn và mã kiểm thử (test code).

18 học viên đang tham gia khóa học này

Độ khó Trung cấp trở lên

Thời gian Không giới hạn

Java
Java
MySQL
MySQL
Spring Boot
Spring Boot
JPA
JPA
JUnit
JUnit
Java
Java
MySQL
MySQL
Spring Boot
Spring Boot
JPA
JPA
JUnit
JUnit

Bạn sẽ nhận được điều này sau khi học.

  • Khả năng mô hình hóa dữ liệu để chuyển đổi các yêu cầu kinh doanh thành cấu trúc thực thể JPA.

  • Khả năng thiết kế quan hệ liên kết, lựa chọn và triển khai các mối quan hệ một-một, một-nhiều, nhiều-nhiều và quan hệ tam phân phù hợp với từng tình huống.

  • Khả năng thiết kế domain có cấu trúc kế thừa bằng cách sử dụng phương pháp phù hợp trong số 4 chiến lược mapping kế thừa.

  • Khả năng hiểu đặc tính của từng loại Collection như Set, List, Map, Bag và thực hiện mapping một cách chính xác.

  • Khả năng thiết lập cấu trúc chuẩn xác ngay từ giai đoạn thiết kế thực thể (entity) trong các dự án thực tế.

  • Khả năng biểu diễn các miền (domain) phức tạp bằng cách sử dụng nhiều mẫu khác nhau như thực thể trung gian, lớp có thể nhúng (embeddable class), v.v.

  • Khả năng dự đoán và kiểm chứng các thực thể đã thiết kế sẽ được tạo thành các bảng DB thực tế như thế nào.

📢 Giới thiệu khóa học

Khóa học này được thiết kế để giúp những nhà phát triển đã biết về JPA có thể tìm thấy câu trả lời cho câu hỏi "Làm thế nào để thiết kế thực thể (entity) đúng cách".

Mô hình hóa dữ liệu là nền tảng của ứng dụng. Nếu bạn thiết kế thực thể (entity) vững chắc ngay từ đầu, các phần sau như repository, truy vấn và logic nghiệp vụ sẽ vận hành trôi chảy hơn nhiều. Khóa học này tập trung vào việc thiết kế thực thể thay vì chỉ giải thích kỹ thuật JPA, và không chỉ dừng lại ở việc trình bày mã nguồn, chúng ta sẽ cùng phân tích dưới góc độ kịch bản kinh doanh rằng "tại sao lại chọn mối quan hệ này" và "tại sao chiến lược mapping này lại phù hợp".

Khóa học bao gồm đa dạng các mô hình thực tế từ các mối quan hệ cơ bản như một-nhiều, một-một, nhiều-nhiều cho đến mapping kế thừa, mapping collection và cả mối quan hệ tam phân. Bằng cách hiển thị song song mã nguồn Entity và bảng MySQL được tạo tự động trên màn hình, bạn có thể trực tiếp kiểm tra luồng thiết kế bằng mắt. Ngoài ra, tài liệu sử dụng trong bài giảng, mã nguồn và mã kiểm thử JUnit cũng được cung cấp kèm theo.

Khóa học này được đề xuất cho những ai đã nắm vững kiến thức cơ bản về JPA nhưng chưa tự tin vào khả năng thiết kế, hoặc những ai muốn rèn luyện tư duy mô hình hóa dữ liệu để có thể áp dụng ngay vào thực tế công việc.

✨ Điểm hấp dẫn của bài giảng

  • Tập trung vào việc nuôi dưỡng cảm giác thiết kế thực tế thay vì giải thích ngữ pháp

  • Với mỗi mẫu thiết kế, chúng ta sẽ cùng nhau phân tích kịch bản kinh doanh để có thể hiểu được "tại sao lại là cấu trúc này".

  • So sánh trực tiếp mã thực thể và bảng MySQL được tạo tự động để tận mắt kiểm tra kết quả thiết kế.

  • Từ các mối quan hệ cơ bản đến kế thừa, bộ sưu tập và quan hệ tam phân, khóa học này bao gồm nhiều mô hình đa dạng được sử dụng trong thực tế chỉ trong một bài giảng duy nhất.

  • Chúng tôi cung cấp thêm các trường hợp kinh doanh tương tự để bạn có thể áp dụng ngay các mẫu đã học vào thực tế.

  • Cung cấp đầy đủ tài liệu bài giảng, mã nguồn và cả mã kiểm thử JUnit để có thể học tập trung vào thực hành

  • Không chỉ dừng lại ở lý thuyết, khóa học còn đề cập đến các mẫu thiết kế có thể áp dụng ngay tại dự án thực tế

📘 Nội dung học trong bài giảng

1. Ánh xạ cơ bản của thực thể JPA

Hiểu rõ khái niệm và sự khác biệt giữa Entity và Value Type, đồng thời học về chiến lược tạo mã định danh, định nghĩa lại tên bảng, mapping kiểu dữ liệu MySQL và phương pháp tự động tạo DDL. Thông qua việc sử dụng các annotation cốt lõi như @Column, @Embedded, bạn sẽ được thiết kế các class có thể nhúng (embeddable) và củng cố vững chắc kỹ năng cơ bản về thiết kế Entity cho đến mapping các component lồng nhau.

2. Chiến lược mapping kế thừa

Tìm hiểu cách so sánh 4 chiến lược biểu diễn cấu trúc kế thừa trong JPA (Bảng đơn, Join, Bảng riêng cho từng lớp cụ thể, và kết hợp các chiến lược) và cách lựa chọn chiến lược phù hợp với từng tình huống. Khóa học cũng bao gồm việc thiết kế kế thừa cho các lớp có thể nhúng (Embeddable), quan hệ đa hình nhiều-một (Many-to-One), và thiết kế bộ sưu tập đa hình, giúp bạn nâng cao khả năng mô hình hóa chính xác các domain có cấu trúc kế thừa phức tạp.

3. Mapping Collection

Tìm hiểu đặc điểm của từng loại Collection như Set, Bag, List, Map và học cách mapping chính xác trong JPA. Nắm vững sự khác biệt và cách sử dụng giữa Collection có thứ tự (Map, Set) và Collection tuần tự (LinkedHashSet, ArrayList, LinkedHashMap), đồng thời tìm hiểu sâu hơn về cách thiết kế Value Type Collection như Component Set, Bag, Map.

4. Quan hệ đối tác một-nhiều

So sánh các phương thức triển khai quan hệ một-nhiều đơn hướng và song hướng, đồng thời học cách triển khai quan hệ một-nhiều theo nhiều cách khác nhau, từ quan hệ một-nhiều tùy chọn sử dụng bảng liên kết, quan hệ một-nhiều của các lớp có thể nhúng (embeddable), cho đến thiết kế bảng liên kết sử dụng @JoinTable.

5. Quan hệ một-một

Học 4 phương thức để thể hiện quan hệ một-một bao gồm: chia sẻ khóa chính, bộ tạo khóa chính ngoại, cột join khóa ngoại và sử dụng bảng join. Bằng cách so sánh đặc điểm cũng như ưu nhược điểm của từng phương thức, bạn sẽ nâng cao khả năng lựa chọn thiết kế phù hợp với yêu cầu nghiệp vụ.

6. Quan hệ nhiều-nhiều và quan hệ tam phân

Học cách triển khai quan hệ nhiều-nhiều đơn hướng và song hướng, cũng như cách thiết kế quan hệ nhiều-nhiều linh hoạt hơn bằng cách sử dụng thực thể trung gian. Hơn nữa, khóa học còn đề cập đến quan hệ tam phân sử dụng component và cấu trúc dữ liệu Map, cùng các mẫu thiết kế quan hệ nâng cao sử dụng cấu trúc key/value, giúp bạn rèn luyện khả năng biểu diễn các mối quan hệ tên miền phức tạp.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà phát triển backend đã nắm vững cú pháp JPA cơ bản nhưng vẫn còn lúng túng không biết nên bắt đầu thiết kế thực thể (entity) như thế nào trong dự án thực tế.

  • Nhà phát triển đang lặp lại trải nghiệm tạo thực thể một cách sơ sài để rồi phải lật ngược lại cấu trúc bảng vào giai đoạn giữa và cuối quá trình phát triển.

  • Những nhà phát triển nắm rõ các mối quan hệ cơ bản như một-nhiều (1:N) hay nhiều-nhiều (N:N), nhưng lại lúng túng khi đối mặt với các miền nghiệp vụ (business domain) phức tạp.

  • Nhà phát triển đã tự học JPA nhưng chưa bao giờ hệ thống hóa lại một cách bài bản các mô hình thiết kế chuyên sâu như mapping kế thừa hay mapping collection.

  • Những nhà phát triển đang mất phương hướng trong việc tiếp cận dưới góc độ mô hình hóa dữ liệu khi muốn chuyển đổi từ MyBatis sang JPA.

Cần biết trước khi bắt đầu?

  • Cú pháp cơ bản của Java (Lớp, Kế thừa, Giao diện, Chú thích, v.v.)

  • Khái niệm cơ bản và cách sử dụng JPA (Persistence Context, các Annotation cơ bản, v.v.)

  • Cấu trúc dự án Spring Boot cơ bản và cách thực hiện

  • Cách sử dụng MySQL cơ bản (Đọc cấu trúc bảng, hiểu SQL cơ bản)

  • Kinh nghiệm viết mã kiểm thử cơ bản bằng JUnit

  • Các khái niệm thiết kế cơ sở dữ liệu cơ bản (PK, FK, chuẩn hóa, v.v.)

  • Kinh nghiệm sử dụng cơ bản Spring Data JPA (Repository interface, v.v.)

Xin chào
Đây là oncoding

431

Học viên

7

Đánh giá

19

Trả lời

4.7

Xếp hạng

3

Các khóa học

Chương trình giảng dạy

Tất cả

57 bài giảng ∙ (10giờ 21phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học khác của oncoding

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Ưu đãi có thời hạn

22.000 ₫

50%

915.832 ₫