- "Tôi sử dụng JPA vì đây là ORM và rất tiện lợi."
- Tôi biết là gọi save() thì sẽ được lưu.
- Ngữ cảnh bền vững thì… tôi không rõ lắm.
[Lv2] Chinh phục hoàn toàn JPA dành cho lập trình viên thực chiến - Từ ngữ cảnh bền vững đến các mẫu thực tiễn
Bạn từng viết SQL bằng JdbcTemplate rồi đúng không? Chắc hẳn ai cũng từng thở dài vì mỗi lần thay đổi một cột lại 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 đó. Chỉ một câu lệnh SELECT bằng JDBC thuần cũng dài tới 35 dòng. Mở Connection, tạo PreparedStatement, duyệt ResultSet, rồi chỉ cần bỏ sót một lệnh close() là máy chủ có thể sập. Sau khi tự tay gõ qua địa ngục này, đến lúc gặp một dòng save() của JPA, bạn sẽ cảm nhận được “thì ra đây là lý do người ta dùng JPA” không phải bằng lý trí, mà bằng chính đôi tay của mình.
128 học viên
Độ khó Cơ bản
Thời gian Không giới hạn


Đánh giá từ những học viên đầu tiên
5.0
5.0
Bruce Han
Đ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
안승현
Tôi đang lắng nghe rất kỹ, tuy là ý kiến chủ quan nhưng đây là bài giảng dễ hiểu nhất đối với tôi.
5.0
부분적무료화
Khóa học này giải thích JPA một cách cực kỳ dễ hiểu, đồng thời giải thích rất tốt về sự khác biệt trong mô hình (paradigm) giữa đối tượng và bảng DB kèm theo các ví dụ cụ thể. Thay vì chỉ dừng lại ở việc liệt kê các tính năng của JPA, giảng viên còn đưa ra các ví dụ về những tính năng nên dùng và những tính năng nên hạn chế, đồng thời gợi ý cách sử dụng thực tế trong công việc. Đối với những người đã sử dụng JPA khá thành thạo trong thực tế, đây là một khóa học tốt để ôn lại kiến thức. Còn đối với những người mới bắt đầu hoặc đang cân nhắc áp dụng JPA, nếu sử dụng khóa học này như một cuốn sách hướng dẫn, tôi tin rằng các bạn có thể xây dựng dịch vụ mà không gặp quá nhiều khó khăn.
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 dựa trên kinh nghiệm về bộ nhớ đệm cấp một, cơ chế phát hiện thay đổi và trì hoãn ghi.
Trải nghiệm trực tiếp nếm trải sự khổ sở với 35 dòng JDBC và cảm nhận được vì sao JPA là cần thiết
Kỹ năng debug thực tế: xem log để tìm nguyên nhân khi xảy ra vấn đề N+1 và lựa chọn giải pháp phù hợp với từng tình huống giữa Fetch Join / @EntityGraph / @BatchSize
Năng lực thiết kế truy vấn động gọn gàng bằng BooleanExpression của QueryDSL mà không tạo ra một mớ if lộn xộn, đồng thời tích hợp JPA và QueryDSL theo cấu trúc tiêu chuẩn thực tiễn với mô hình Custom Repository
Từ thiết kế entity, ánh xạ quan hệ kế thừa, BaseEntity(Auditing) đến kiểu nhúng — năng lực thiết kế giúp bạn khi bắt đầu dự án thực tế có thể quyết định “Hãy đi theo pattern này” thay vì “Thiết kế bảng như thế nào đây?”
save() thì được, nhưng nếu không thể giải thích “tại sao”
thì sẽ bị loại.
Dành cho những ai đã thực hiện CRUD bằng JdbcTemplate nhưng lại bối rối trước câu hỏi "Ngữ cảnh bền vững là gì vậy?". Trải nghiệm trước nỗi đau với 35 dòng JDBC thuần túy, rồi nhận ra sự vĩ đại của JPA — với phương pháp học “nỗi đau → giải thoát” này, bạn sẽ trở thành một lập trình viên có thể giải thích cả cách thức hoạt động bên trong.
Hầu hết các khóa học JPA chỉ dạy “cách làm”.
"Chỉ cần thêm @Entity và dùng save() là được." Làm theo thì chạy. Nhưng người phỏng vấn sẽ hỏi: "Nguyên lý hoạt động của Persistence Context là gì?", "Bạn đã giải quyết vấn đề N+1 như thế nào?".
Dừng lại ở câu “chỉ cần thêm @Entity và dùng save() là được”.
Không thể trình bày nguyên lý của persistence context, N+1 và cơ chế phát hiện thay đổi.
Vì chưa trải qua nỗi đau khi phải tự viết 35 dòng JDBC, bạn không hiểu được JPA đáng giá đến mức nào.
Các khái niệm cốt lõi, nghe một lần là không thể quên.
Bối cảnh Persistence · trì hoãn ghi · tải trì hoãn · truy vấn động · N+1 · quan hệ liên kết — không chỉ là mã nguồn, mà còn giải thích bằng phép ẩn dụ từ “điều gì” đến “tại sao”.
"Ngữ cảnh bền vững là gì?"
Giải thích bằng trợ lý hoạt động nhờ bộ nhớ đệm cấp một và cơ chế phát hiện thay đổi.
"INSERT được thực hiện khi nào?"
Trả lời rằng, giống như gom các kiện hàng lại rồi gửi đi, chúng được gom lại và gửi một lần.
"Lazy loading hoạt động như thế nào?"
Giải thích rằng nhân viên giả (proxy) sẽ tải khi có công việc thực sự phát sinh.
"Bạn đã viết truy vấn động như thế nào?"
An toàn ngay từ thời điểm biên dịch với lắp ráp Lego bằng QueryDSL.
"Bạn đã giải quyết vấn đề N+1 như thế nào?"
Trả lời bằng 3 phương pháp, trong đó có Fetch Join.
"Tại sao lại thiết kế @ManyToOne như vậy?"
Giải thích rằng sự không nhất quán giữa đối tượng và bảng được giải quyết bằng ánh xạ.
Phải tự mình trải qua thì mới khắc cốt ghi tâm.
Không được học save() trước. Mỗi tuần, bạn sẽ trực tiếp trải qua “nỗi đau → sự cứu rỗi”. Sau khi trải qua địa ngục 35 dòng và vụ nổ N+1, bạn sẽ có thể trình bày nguyên lý đó một cách trôi chảy trong buổi phỏng vấn.
Tôi đã viết 35 dòng cho một câu lệnh SELECT bằng JDBC.
Sau nỗi đau đó, bạn sẽ cảm nhận được cuộc cách mạng của Context lưu trữ 3 dòng.
Dữ liệu đã bị hỏng do thiếu EnumType và merge().
EnumType.STRING·phát hiện thay đổi để phòng vệ an toàn.
Để truy vấn 10 thành viên, đã phát sinh 11 truy vấn.
Cảm nhận được việc giảm xuống còn 1 truy vấn chỉ với một dòng Fetch Join.
Tôi đã sao chép và dán createdAt vào tất cả các entity.
Kế thừa các trường dùng chung chỉ với BaseEntity.
Lỗi đánh máy trong chuỗi JPQL đã phát nổ thành sự cố runtime.
Phát hiện bằng QueryDSL tại thời điểm biên dịch.
Cùng một câu hỏi, câu trả lời quyết định việc đỗ hay trượt.
- "Tự làm trực tiếp bằng JDBC, tôi nhận ra sự không khớp giữa đối tượng và bảng thật sự rất khó xử lý."
- "Cache cấp một và cơ chế phát hiện thay đổi của ngữ cảnh bền vững đã giải quyết vấn đề này."
- N+1 được trả lời bằng 3 cách, chẳng hạn như Fetch Join.
CRUD thì làm được, nhưng lại bị khựng khi phỏng vấn.
Tôi đã tạo CRUD bằng JdbcTemplate. Nhưng rồi lại bắt đầu một diễn biến trượt phỏng vấn thường thấy.
Khóa học này là nội dung cốt lõi của lộ trình, Lv.2.
Nếu đã nắm vững kiến thức nền tảng về Spring Boot ở Lv.1, thì giờ là lúc chinh phục JPA, công nghệ được sử dụng nhiều nhất trong thực tế.
Trước khi bắt đầu với Spring, hãy củng cố nền tảng.
Xây dựng API bằng Spring và chuẩn bị cho các buổi phỏng vấn.
Từ Persistence Context đến QueryDSL.
Nếu đã trang bị đầy đủ vũ khí thực chiến, giờ đây hãy tạo sự khác biệt bằng CV và vượt qua vòng hồ sơ.
Bạn đã từng gặp chuyện như thế này chưa?
Đã bao giờ bạn không biết phải nói gì khi được hỏi “Hãy giải thích về persistence context” chưa?
Đã bao giờ bạn chỉ có thể trả lời một cách duy nhất khi được hỏi “Bạn đã từng giải quyết vấn đề N+1 chưa?”
5 tuần, 41 bài giảng · Từ Persistence Context đến QueryDSL.
Ngữ cảnh bền vững → Ánh xạ thực thể → Quan hệ liên kết·Proxy → Kế thừa·Kiểu giá trị → QueryDSL. Trải nghiệm từng khái niệm theo mạch “nỗi đau → sự cứu rỗi”. Nhấn vào từng phần để xem mục lục chi tiết.
섹션 1. 🦸 1주차 · 영속성 컨텍스트, JDBC 고통 → 구원영속성 컨텍스트
- 1😱 Nỗi khổ của JDBC thuần: 35 dòng cho một SELECT
- 2🦸 Persistence Context: vị cứu tinh giải quyết nỗi đau
- 3📦 Bộ nhớ đệm cấp một: Bí mật giúp giảm thiểu việc truy cập cơ sở dữ liệu
- 4🔍 Phát hiện thay đổi: Biết bạn đã thay đổi gì
- 5📮 Trì hoãn ghi: Gom lại rồi thực hiện một lần
섹션 2. 🏷️ 2주차 · 엔티티 매핑과 Spring Data JPA엔티티 매핑
- 6🏷️ Hiểu rõ hoàn toàn về @Entity·@Table·@Column
- 7🔑 Chiến lược ánh xạ khóa chính
- 8🚽 Flush: khoảnh khắc nước được xả
- 9👻 Trạng thái tách rời: Khi thư ký tan làm
- 10🎁 Những cạm bẫy của Spring Data JPA + save()·merge()
섹션 3. 🌍 3주차 · 연관관계와 프록시·지연 로딩연관관계·프록시
- 11🌍 Thế giới đối tượng vs thế giới bảng
- 12↔️ Mối quan hệ liên kết một chiều·hai chiều và quy tắc của bên sở hữu
- 13⚡ Tải ngay vs tải trì hoãn: Tại sao LAZY là mặc định?
- 14🎭 Proxy: đối tượng giả giúp thực hiện tải lười
- 15👨👦 CASCADE·đối tượng mồ côi (Orphan Removal)
섹션 4. 🧬 4주차 · 상속 매핑과 값 타입상속·값 타입
- 16🧬 Ánh xạ quan hệ kế thừa: chiến lược JOIN và bảng đơn
- 17📋 @MappedSuperclass: Các trường dùng chung với BaseEntity
- 18💳 Thực tế: kế thừa miền nghiệp vụ thanh toán + AttributeConverter
- 19🎁 Kiểu giá trị: đối tượng nhúng · bất biến
- 20📚 Giới hạn và giải pháp thay thế của collection kiểu giá trị
섹션 5. 🏗️ 5주차 · QueryDSL 실무QueryDSL
- 21🏗️ Cấu hình môi trường dự án và bí mật của lớp Q
- 22🔎 Cú pháp cơ bản: tìm kiếm · sắp xếp · phân trang · tập hợp
- 23🔗 Join và fetch join: giải pháp cho vấn đề N+1
- 24🚦 Truy vấn động: BooleanBuilder·nhiều tham số
- 25⚡ Tối ưu hóa hiệu năng: truy vấn DTO·thao tác hàng loạt
Nếu làm được CRUD nhưng không thể giải thích những gì diễn ra bên trong.
Phù hợp với bạn nếu
Đã thực hiện CRUD bằng JdbcTemplate nhưng không biết "ngữ cảnh persistence" là gì
Biết save() nhưng không biết “bên trong đang diễn ra điều gì”
Dành cho những người không thể tìm ra lỗi khi N+1 xảy ra trong code của mình
Những ai muốn trả lời câu hỏi “Hãy giải thích về persistence context” bằng kinh nghiệm thực tế
Cần điều chỉnh kỳ vọng
- Những người hoàn toàn mới làm quen với Spring·JPA (khuyến nghị học Lv.1 trước)
- Những người còn xa lạ với bản thân cú pháp Java
- Những người chỉ kiên quyết sử dụng SQL thuần túy mà không dùng ORM
Lv.2 — Có thể bắt đầu nếu bạn có kinh nghiệm tương đương Lv.1.
Kinh nghiệm từng làm quen với Spring dù chỉ một chút (khuyến nghị hoàn thành khóa nhập môn Spring Boot Lv.1).
Kinh nghiệm CRUD với MySQL.
IntelliJ Community (miễn phí) là đủ — không phụ thuộc Windows hay Mac, cung cấp hướng dẫn cài đặt cho từng hệ điều hành.
Sau khi kết thúc khóa học, bạn sẽ làm được bốn điều này.
Giải thích chi tiết đến cả cơ chế hoạt động bên trong của bộ nhớ đệm cấp một và cơ chế phát hiện thay đổi của ngữ cảnh tồn tại.
Giải quyết vấn đề N+1 bằng 3 phương pháp, bao gồm Fetch Join.
Thông qua ánh xạ quan hệ, giải quyết sự không tương thích giữa mô hình đối tượng và mô hình bảng.
Tạo các truy vấn động an toàn tại thời điểm biên dịch bằng QueryDSL.
Trực tiếp từ một lập trình viên đang làm việc, người đã tham gia vòng phỏng vấn cuối cùng tại Coupang và Yanolja.
Giảng viên là lập trình viên có 6 năm kinh nghiệm, từng lọt vào vòng phỏng vấn cuối tại Coupang và Yanolja, đồng thời có câu chuyện chuyển việc qua 24 công ty, trực tiếp giảng dạy.
Xuất thân là nhà phát triển máy chủ tại Viva Republica (Toss) — giải thích “tại sao” từ góc nhìn đã được kiểm chứng trong thực tế.
Đây không phải là khóa học chỉ dạy “làm thế nào” rồi kết thúc, mà kết nối từ khái niệm → trực tiếp trải nghiệm → câu trả lời phỏng vấn.
Vận hành cộng đồng hỗ trợ xin việc cho lập trình viên (KakaoTalk·Discord) và hỗ trợ học viên đến cùng.
Để lại đánh giá khóa học, bạn sẽ nhận được bộ câu hỏi phỏng vấn JPA.
Các câu hỏi thường gặp trong phỏng vấn như persistence context, N+1, QueryDSL cùng câu trả lời mẫu — đây là bộ câu hỏi trên Notion để bạn có thể trực tiếp luyện tập.
Chỉ cần mở rộng phần bạn thắc mắc để xem.
JPA를 처음 보는데 들어도 되나요?
Khóa học này ở cấp độ Lv.2. Khóa học giả định bạn đã từng thực hiện CRUD bằng JdbcTemplate hoặc có kinh nghiệm nhập môn Spring Boot ở mức Lv.1. Nếu hoàn toàn mới làm quen với JPA, chúng tôi khuyên bạn nên bắt đầu từ Lv.1.
따라하기 강의랑 뭐가 다른가요?
Cố tình cho bạn trải qua khó khăn trước. Sau khi tự tay viết 35 dòng chỉ cho một câu lệnh SELECT bằng JDBC thuần, rồi trải qua địa ngục khi 11 truy vấn bùng nổ vì N+1, bạn mới cảm nhận sâu sắc sự tuyệt vời của 3 dòng Persistence Context và một dòng Fetch Join. Trải nghiệm này tạo nên những câu trả lời phỏng vấn bắt đầu bằng "Tôi đã trực tiếp trải qua rồi".
실습 환경은 어떻게 되나요?
Sử dụng IntelliJ. Phiên bản Community (miễn phí) là đủ, hỗ trợ cả Windows và Mac. Chia sẻ tài liệu học tập (Notion·PDF) và mã nguồn dự án.
이 강의를 들으면 어디까지 할 수 있나요?
Chinh phục JPA—công nghệ được sử dụng nhiều nhất trong thực tế—từ Persistence Context, quan hệ liên kết, proxy, ánh xạ kế thừa, kiểu giá trị cho đến QueryDSL. Đây là Backend Roadmap Lv.2, bước tiếp theo sau Lv.1 (nhập môn Spring Boot).
Đừng học thuộc, hãy giải thích cả “tại sao” về persistence context.
Bạn phải trải qua nỗi đau của 35 dòng JDBC thì mới thấy được cuộc cách mạng của 3 dòng JPA. Phải trải qua địa ngục N+1 thì Fetch Join mới khắc sâu vào xương tủy. Sau 5 tuần, bạn sẽ có thể bắt đầu câu trả lời bằng: "Tôi đã trực tiếp trải nghiệm rồi".
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 quát JPA là gì và tại sao nên sử dụng nó.
Dành cho những ai muốn khơi gợi các câu hỏi bổ sung từ người phỏng vấn bằng những câu trả lời dựa trên kinh nghiệm
Những ai đã hiểu @ManyToOne nhưng vẫn chưa nắm rõ tại sao cần quan hệ hai chiều và mappedBy là gì.
Dành cho những ai muốn hiểu nguyên lý: truy vấn được gửi đi khi nào, cơ chế phát hiện thay đổi hoạt động ra sao và tại sao không cần dùng `update()`.
Dành cho những người cần kỹ năng thực tế để đọc nhật ký truy vấn và tự mình giải quyết vấn đề.
Cần biết trước khi bắt đầu?
Cú pháp Java cơ bản (câu lệnh if, vòng lặp for, lớp, giao diện)
Kinh nghiệm xây dựng một REST API đơn giản bằng Spring Boot
Kinh nghiệm thực hiện CRUD cơ sở dữ liệu bằng JdbcTemplate (các thao tác SQL cơ bản như SELECT, INSERT, v.v.)
Xin chào
Đây là dingcodingco
Xác minh Inflearn
Xác minh sự nghiệp
19,853
Học viên
1,996
Đánh giá
365
Trả lời
4.9
Xếp hạng
32
Các khóa học
Nhận phiếu giảm giá 15% cho khóa học Dingcodingco
🚀 Từng làm việc tại Toss, tốt nghiệp Đại học Khoa học và Công nghệ Pohang | Lập trình viên backend đang làm việc trong ngành (hơn 9 năm)
🎥YouTuber với 20 nghìn người đăng ký | Sản xuất nội dung về phát triển phần mềm
📚 Giảng viên trên Inflearn | Tổng số học viên đã tham gia 18.000+
👥 Đang vận hành cộng đồng việc làm dành cho lập trình viên (8.000+)
🧩 Contributor cho nhiều dự án mã nguồn mở (Gradle, Spring AI, v.v.)
📝38 lần đậu vòng hồ sơ và hơn 100 lần chỉnh sửa CV trên Kmong (điểm đánh giá 5,0)
Truyền đạt những thông tin thực tế, sống động từ công việc một cách dễ hiểu và logic.
Chương trình giảng dạy
Tất cả
41 bài giảng ∙ (9giờ 39phút)
Đánh giá
Tất cả
8 đánh giá
5.0
8 đánh giá
- brucehan
Đánh giá 112
∙
Đánh giá trung bình 4.5
Đã 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.
- dingcodingcoGiảng viên
Rất vui vì những giải thích tập trung vào thực tiễn và các ví dụ so sánh đã giúp ích cho bạn. Cảm ơn bạn đã chỉ ra tỉ mỉ các lỗi chính tả trong phụ đề, và tôi tin rằng phương pháp học kết hợp giữa bài giảng và giáo trình để hoàn thành khóa học của bạn sẽ là một tham khảo hữu ích cho các học viên khác.
tarrot1415Đánh giá 3
∙
Đánh giá trung bình 5.0
5
100% đã tham giaKhóa học này giải thích JPA một cách cực kỳ dễ hiểu, đồng thời giải thích rất tốt về sự khác biệt trong mô hình (paradigm) giữa đối tượng và bảng DB kèm theo các ví dụ cụ thể. Thay vì chỉ dừng lại ở việc liệt kê các tính năng của JPA, giảng viên còn đưa ra các ví dụ về những tính năng nên dùng và những tính năng nên hạn chế, đồng thời gợi ý cách sử dụng thực tế trong công việc. Đối với những người đã sử dụng JPA khá thành thạo trong thực tế, đây là một khóa học tốt để ôn lại kiến thức. Còn đối với những người mới bắt đầu hoặc đang cân nhắc áp dụng JPA, nếu sử dụng khóa học này như một cuốn sách hướng dẫn, tôi tin rằng các bạn có thể xây dựng dịch vụ mà không gặp quá nhiều khó khăn.
- dingcodingcoGiảng viên
Tôi rất vui vì phần giải thích phân biệt sự khác biệt giữa mô hình đối tượng và DB, cũng như các mẫu được khuyến nghị và các mẫu nên tránh trong thực tế đã giúp ích cho bạn. Cảm ơn bạn đã hoàn thành khóa học cho đến cuối cùng.
abeb30318Đánh giá 6
∙
Đánh giá trung bình 5.0
5
61% đã tham giaTôi đang lắng nghe rất kỹ, tuy là ý kiến chủ quan nhưng đây là bài giảng dễ hiểu nhất đối với tôi.
- dingcodingcoGiảng viên
Cảm ơn bạn rất nhiều vì đã chia sẻ rằng bạn thấy dễ hiểu. Tôi đã cố gắng truyền đạt các khái niệm cốt lõi của JPA một cách trực quan nhất có thể, và tôi cảm thấy rất vui khi nỗ lực đó đã chạm đến được bạn.
- trixiel
Đánh giá 7
∙
Đánh giá trung bình 5.0
5
100% đã tham giaTrướ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!
- dingcodingcoGiảng viên
Tôi rất vui vì bạn đã hiểu được nguyên lý hoạt động đằng sau các annotation. Cảm ơn bạn vì phần nội dung được xây dựng để bạn có thể trực tiếp cảm nhận 'Tại sao lại là JPA' khi đi qua lại giữa mã kiểm thử và triển khai thực tế đã được truyền tải tốt!
techietaekĐánh giá 6
∙
Đá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!
- dingcodingcoGiảng viên
Tôi đã đặc biệt chú trọng vào phần đi sâu vào nguyên lý hoạt động bên trong vì nghĩ rằng nó sẽ thực sự giúp ích trong công việc thực tế, rất cảm ơn bạn đã đánh giá cao phần đó. Chúc mừng bạn đã hoàn thành khóa học!
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!


![[Phần mềm hậu trường/Kịch bản xử lý ngoại lệ/Tối ưu hóa tổng hợp] Chiến lược tăng cường danh mục đầu tư phần mềm hậu trường và kinh nghiệm thực tế. Phần 1 toàn diệnHình thu nhỏ khóa học](https://cdn.inflearn.com/public/courses/335091/cover/1a19a4de-ec2e-4e26-a84e-28691e777020/335091.jpg?w=420)
![Tạo máy chủ đầu tiên của bạn bằng Java và Spring Boot Bất kỳ ai cũng có thể dễ dàng chuyển từ giai đoạn phát triển sang triển khai! [Gói phát triển máy chủ tất cả trong một]Hình thu nhỏ khóa học](https://cdn.inflearn.com/public/courses/330186/cover/3bb38317-e5c5-4975-b1df-9baa6f19b73d/330186-eng.png?w=420)





