inflearn logo

[Lv2] Chinh phục hoàn toàn JPA dành cho nhà phát triển thực thụ - Từ Persistence Context đến các mô hình thực tế

Bạn chắc hẳn đã từng viết SQL bằng JdbcTemplate rồi đúng không? Chắc hẳn ai cũng từng có trải nghiệm thở dài khi mỗi lần thay đổi một cột là phải sửa đồng thời cả SQL lẫn RowMapper. Khóa học này bắt đầu từ chính nỗi đau đó. Nếu dùng JDBC thuần để thực hiện một lệnh SELECT, bạn sẽ mất 35 dòng code. Mở Connection, tạo PreparedStatement, duyệt ResultSet, và nếu lỡ quên một lệnh close() thôi là server sẽ bị sập. Sau khi tự tay gõ qua những dòng code địa ngục này và chạm đến duy nhất một dòng save() của JPA, bạn sẽ cảm nhận được "tại sao phải dùng JPA" không chỉ bằng cái đầu mà bằng chính đôi bàn tay của mình.

(5.0) 5 đánh giá

113 học viên

Độ khó Cơ bản

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

JPA
JPA
spring-jpa
spring-jpa
Java
Java
Spring
Spring
Spring Boot
Spring Boot
JPA
JPA
spring-jpa
spring-jpa
Java
Java
Spring
Spring
Spring Boot
Spring Boot

Đánh giá từ những học viên đầu tiên

5.0

5.0

Bruce Han

100% đã tham gia

Điểm rất tốt của khóa học này - Giảng viên dạy JPA rất tốt, tập trung vào thực tế. - Giải thích lý thuyết thông qua các phép ẩn dụ giúp tôi hiểu bài rất nhanh. Lưu ý khi nghe giảng - Nếu chỉ nghe không thì sẽ không nhớ được lâu. Vì vậy, tôi nghĩ việc nghe xong mỗi bài giảng, thực hành gõ theo giáo trình và hiểu rõ rồi mới chuyển sang bài tiếp theo là rất quan trọng. Điểm cần cải thiện để tốt hơn - Thỉnh thoảng có lỗi đánh máy trong video. Ví dụ, có những trường hợp phụ đề hiển thị sai từ như tính đa hình (다형성) thành tính đa dạng (다양성), hay giải thích nhầm builder.and thành builder.end.

5.0

minjung0768

100% đã tham gia

Trước đây tôi chỉ mới dừng lại ở việc gắn các annotation mà chưa hiểu rõ cơ chế hoạt động bên trong, nhưng thông qua việc đi sâu vào mã kiểm thử và triển khai thực tế, tôi đã hiểu rõ hơn về cách nó hoạt động một cách logic và lý do tại sao chúng ta sử dụng JPA!

5.0

techietaek

100% đã tham gia

Đây là khóa học được thiết kế để bạn có thể giới thiệu và thực hành mọi thứ từ cơ bản đến mã nguồn cấp độ thực tế của JPA. Không chỉ dừng lại ở cách sử dụng đơn thuần, khóa học còn giúp tôi nắm vững nền tảng cơ bản chắc chắn hơn thông qua việc học hỏi các nguyên lý hoạt động bên trong! Cảm ơn vì một bài giảng tuyệt vời!

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

  • Khả năng giải thích trôi chảy về bộ nhớ đệm cấp 1 (first-level cache), cơ chế phát hiện thay đổi (dirty checking) và trì hoãn ghi (write-behind) dựa trên kinh nghiệm thực tế.

  • Kinh nghiệm cảm nhận sâu sắc lý do tại sao JPA lại cần thiết sau khi trực tiếp nếm trải nỗi đau của 35 dòng mã JDBC

  • Khả năng debug thực tế để tìm ra nguyên nhân bằng cách xem log khi vấn đề N+1 xảy ra, và lựa chọn giải pháp phù hợp với tình huống giữa Fetch Join / @EntityGraph / @BatchSize.

  • Khả năng thiết kế truy vấn động gọn gàng mà không bị vướng vào "spaghetti if-else" bằng BooleanExpression của QueryDSL, đồng thời tích hợp JPA và QueryDSL thành cấu trúc tiêu chuẩn thực tế thông qua Custom Repository pattern.

  • Từ việc thiết kế thực thể (entity) đến ánh xạ quan hệ kế thừa, BaseEntity (Auditing), và cả kiểu nhúng (embedded type) — đây là tư duy thiết kế giúp bạn không còn phải thắc mắc "Nên thiết kế bảng như thế nào?" mà có thể quyết định ngay "Hãy làm theo mô hình này" khi bắt đầu một dự án thực tế.

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

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

  • Dành cho những ai muốn nắm bắt khái niệm JPA là gì và tại sao nên sử dụng nó.

  • Những người muốn thu hút thêm câu hỏi từ người phỏng vấn bằng các câu trả lời dựa trên kinh nghiệm thực tế.

  • Dành cho những ai đã hiểu @ManyToOne nhưng vẫn chưa rõ tại sao cần quan hệ hai chiều và mappedBy là gì.

  • Những ai muốn biết nguyên lý về thời điểm truy vấn được gửi đi, cơ chế hoạt động của việc phát hiện thay đổi (dirty checking), và tại sao không cần sử dụng update().

  • Những người cần kỹ năng thực tế để có thể đọc log truy vấn và trực tiếp giải quyết vấn đề.

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

  • Ngữ pháp Java cơ bản (câu lệnh if, vòng lặp for, lớp, giao diện)

  • Kinh nghiệm tạo REST API đơn giản bằng Spring Boot

  • Kinh nghiệm thực hiện CRUD DB bằng JdbcTemplate (cơ bản như SQL SELECT, INSERT, v.v.)

Xin chào
Đây là dingcodingco

Xác minh Inflearn

Xác minh sự nghiệp

17,784

Học viên

1,810

Đánh giá

346

Trả lời

4.9

Xếp hạng

21

Các khóa học

🚀 Từng làm việc tại Toss, tốt nghiệp POSTECH | Nhà phát triển Backend hiện tại (+8 năm)
🎥 YouTuber 20.000 người đăng ký | Sản xuất nội dung về lập trình
📚 Giảng viên Inflearn | Tổng số học viên 15.000+
👥 Đang vận hành cộng đồng tuyển dụng lập trình viên (8.000+)
🧩 Người đóng góp (Contributor) cho nhiều dự án mã nguồn mở (Gradle, Spring AI, v.v.)
📝 Kinh nghiệm vượt qua vòng hồ sơ tại 38 công ty và hơn 100 lần chỉnh sửa CV trên Kmong (Đánh giá 5.0 sao)

Tôi truyền đạt những thông tin thực tế từ ngành công nghiệp một cách dễ hiểu và có tính diễn dịch.
I deliver vivid, real-world industry insights in an easy-to-understand and deductive manner.

Link phỏng vấn Inflearn!

Thêm

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

Tất cả

41 bài giảng ∙ (9giờ 39phút)

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

Đánh giá

Tất cả

5 đánh giá

5.0

5 đánh giá

  • trixiel님의 프로필 이미지
    trixiel

    Đánh giá 6

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Trước đây tôi chỉ mới dừng lại ở việc gắn các annotation mà chưa hiểu rõ cơ chế hoạt động bên trong, nhưng thông qua việc đi sâu vào mã kiểm thử và triển khai thực tế, tôi đã hiểu rõ hơn về cách nó hoạt động một cách logic và lý do tại sao chúng ta sử dụng JPA!

    • techietaek님의 프로필 이미지
      techietaek

      Đánh giá 5

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      Đây là khóa học được thiết kế để bạn có thể giới thiệu và thực hành mọi thứ từ cơ bản đến mã nguồn cấp độ thực tế của JPA. Không chỉ dừng lại ở cách sử dụng đơn thuần, khóa học còn giúp tôi nắm vững nền tảng cơ bản chắc chắn hơn thông qua việc học hỏi các nguyên lý hoạt động bên trong! Cảm ơn vì một bài giảng tuyệt vời!

      • gkdldh님의 프로필 이미지
        gkdldh

        Đánh giá 6

        Đánh giá trung bình 5.0

        5

        98% đã tham gia

        Tài liệu bài giảng rất gọn gàng và dễ hiểu!!

        • asdfasdfasdf1님의 프로필 이미지
          asdfasdfasdf1

          Đánh giá 19

          Đánh giá trung bình 5.0

          5

          61% đã tham gia

          Cảm ơn bạn đã giải thích về công nghệ JPA thông qua các ví dụ so sánh, giúp mình dễ hiểu hơn rất nhiều ạ!

          • brucehan님의 프로필 이미지
            brucehan

            Đánh giá 94

            Đánh giá trung bình 4.4

            Đã chỉnh sửa

            5

            100% đã tham gia

            Điểm rất tốt của khóa học này - Giảng viên dạy JPA rất tốt, tập trung vào thực tế. - Giải thích lý thuyết thông qua các phép ẩn dụ giúp tôi hiểu bài rất nhanh. Lưu ý khi nghe giảng - Nếu chỉ nghe không thì sẽ không nhớ được lâu. Vì vậy, tôi nghĩ việc nghe xong mỗi bài giảng, thực hành gõ theo giáo trình và hiểu rõ rồi mới chuyển sang bài tiếp theo là rất quan trọng. Điểm cần cải thiện để tốt hơn - Thỉnh thoảng có lỗi đánh máy trong video. Ví dụ, có những trường hợp phụ đề hiển thị sai từ như tính đa hình (다형성) thành tính đa dạng (다양성), hay giải thích nhầm builder.and thành builder.end.

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

            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, kết thúc sau 3 ngày ngày

            69.300 ₫

            30%

            2.085.060 ₫