Hibernate and Spring Data JPA: Beginner to Guru (Udemy.com)
Master Hibernate, Remove the mystery of Spring Data JPA - Use Spring Boot 3!
Created by: John Thompson
Last updated August 2026
What you will learn
- Learn about the Java JPA Specification and the Hibernate JPA Implementation
- How to Query Data with JDBC, JDBC Template, Hibernate, and Spring Data JPA
- Learn how to use JPA's Object Relational Mapping (ORM) to map Java POJOs to relational database tables
- Understand JPA Relationships - One to One, One to Many, Many to One, and Many to Many
- How to persist data to a relational database using JPA and Hibernate
- How you can use Hibernate's Paging and Sorting features
- Understand Database Transactions and How you can control them
- Use Liqibase and Flyway to Manage Database Migrations
- Understand How to Implement the DAO pattern using JDBC, JDBC Template, Hibernate, and Spring Data JPA
- Learn to Generate Database Schemas from JPA Entities Using Hibernate
- Use Advanced JPA features to map Legacy Databases
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 96 / 100
Course Description
Hibernate is the default JPA implementation used by Spring Data JPA.
NOTE: Java 17 and Spring Boot 3 are required for this course.
JPA stands for Java Persistence API. This is a common Java API used to work with Relational Databases.
Spring Data JPA is an abstraction built on top of the JPA API specification.
Being an abstraction, Spring Data JPA makes working with database entities very efficient.
Spring Data JPA eliminates a lot of the boilerplate / cerimonial code, and allows developers to focus on developing business logic.
The downside of the efficient abstraction is that accessing the database can become a mystery. Developers who just understand how to use Spring Data JPA do not understand the complexities of JDBC and Hibernate.
You will start this course with a basic demonstration of Spring Data JPA. In this section you will learn how to work with a H2 in-memory database.
You'll see how easy it is to work with Spring Data JPA. You will also begin to understand how the Hibernate interaction is being abstracted away.
Since JPA is the Java API for working with Relational Databases, the course takes a closer look at Relational Databases and MySQL specifically.
MySQL is the most popular open source relational database in the world. You will learn how to configure Spring Boot to test with a H2 in-memory database and to run integration tests against a MySQL database. This is a common real-world example leveraging the power of Spring and Hibernate to give you a very flexible environment.
Once we've established a persistent database, we can explore using database migration tools.
Liquibase and Flyway are two very popular database migration tools. Spring Boot supports both options. And you will learn about both options and database security best practices.
By establishing a MySQL database, Spring Boot Integration Tests, and automated database migrations we can use Test Driven Development to explore the features of JDBC and Hibernate.
In the course you will learn:
What is the DAO pattern, and how to implement it using JDBC, Spring's JDBCTemplate, and Hibernate
Relational Database Principles
Schema Creation in MySQL
Schema Generation using Hibernate
Database Migrations using Liquibase
Database Migrations using Flyway
Database Integration Testing using Spring Boot and JUnit 5
Defining Primary Key's with Hibernate
Hibernate Criteria Queries
Named JPA Queries
Spring Data JPA query methods
Spring Data JPA @Query Annotation
Entity Relationships - One to One, One to Many, Many to One, Many to Many
Embedded Types
Natural Keys
Composite Keys
Spring Data JPA Query Methods
Paging and Sorting
Database Transaction Management
Database Fetch Operations
Data Validation
JPA Inheritance
Hibernate Interceptors and Listeners
JPA Callbacks
Legacy Database Mapping
Using Multiple Data Sources
Spring Data REST
Learn Hibernate and Spring Data JPA - Enroll today!
Instructor Details
- 4.8 Rating
1,265 Reviews
John Thompson
Hi. I'm John.
I've been in the IT industry for over 25 years. Today, I specialize mainly in Java, the most successful and widely known programming language in use today. I also specialize with the Spring Framework, which the most popular open source application framework for building enterprise class applications on the Java platform. Just some of the organizations I've worked with include Visa, Kohls, Federal Home Loan Bank, and Belk Department Stores.
Through the courses I'm providing, I hope to leverage my years of experience to accelerate your learning of the Spring Framework. I'm not going to lie to you. The Spring Framework is a big framework. The environment for enterprise Java is even bigger. If you're new to Java, you have a lot to learn. I hope through the content on this web site I can accelerate your education of the Java and Spring landscape.
More courses by John Thompson
Spring Framework 5: Beginner to Guru (2026)
4.1 (19,620 Reviews)
Provider: Udemy
Time: 61.1h
$109.99
Spring Boot Microservices with Spring Cloud Beginner to Guru (2026)
4.6 (5,706 Reviews)
Provider: Udemy
Time: 42.5h
$129.99
[NEW] Spring Boot 4, Spring Framework 7: Beginner to Guru (2026)
4.4 (3,100 Reviews)
Provider: Udemy
Time: 48h
$84.99
More Java courses
Programming Fundamentals in Java for CS Students: Part 1 (2023)
4.9 (38 Reviews)
Provider: Udemy
Time: 5.8h
$19.99
Java 9 New Features In Simple Way : JShell, JPMS and More (2019)
4.8 (912 Reviews)
Provider: Udemy
Time: 33.3h
$64.99
Learn JAVA Programming - Beginner to Master (2026)
4.7 (31,368 Reviews)
Provider: Udemy
Time: 61.4h
$119.99
The Complete Java Certification Course (2025)
4.7 (30,462 Reviews)
Provider: Udemy
Time: 18.1h
$174.99
Reviews
By Amir Kanan Kashefi on 12/8/2025
Honestly, this was the most up-to-date Spring Data JPA course I could find on Udemy. The one ChatGPT pointed me to was pretty outdated, but this one nailed it. The instructor goes through the exact Spring Boot and JPA stuff we use at work, plus heaps of useful backend tools. Really practical course—no fluff.
By Semiha Gürsoy on 10/16/2025
Amazing hibernate course. I am recommending it to anyone who needs to learn the technology fast and well enough to build projects on their own. I particularly liked the sections about Flyway and Kubernetes. In this course you are actually learning hibernate + powerful other tools + how to do production set up + security best practices and more. Definitely is worth the time, money and effort.
By Anonymized User on 7/9/2024
This is an excellent resource for learning Spring Data JPA. It starts from the low level abstractions (JDBC) and works up through Hibernate all the way to JPA, then focuses on the different features of JPA. The course isn't exactly 30 hours, as there are approx. 6ish hours of Appendix material which may or may not be needed depending on your experience level. Additionally, there are hands on exercises (which were great to include!) which may take some time to complete based on your experience and understanding of the material. Two topics I wish had been covered but weren't include JPA Caching (1st and 2nd level) and Projections. Still, this course and instructor definitely deserve 5 stars! Thank you John Thompson for your excellent content, as usual!
By Nandakumar on 9/7/2023
the instructor sharing his experiences gave me clarity on deciding which one to move forward with when we have multiple choices to select. But the instructor needs to assume that the students are starting with zero knowledge on the topic which i felt that he didn't do at some occasions. so i had to refer some other resources too
By Lorraine Figueroa on 9/3/2023
This is an excellent course. I hope to complete it. The author presents things in a logical manner and explains things quite well. I am learning quite a bit. The assignments allow you to learn the material better by reinforcing the concepts and allowing you to think and appy the material you are learning.
By Mateusz Mikołajczyk on 8/31/2022
Thanks John, that was a fantastic course! I just would like to see two more items: one is elaborate a bit on creating and using relations like one-to-many or many-to-many using composite key and mapping tables. Other thing is caching in Hibernate. All in all, course is great and was really helpful for me.
By Chukwuka Egbujio on 5/31/2022
The experience has been awesome for the course content that I have covered. In my opinion, the course should be recommended for all JAVA-based programmers at all levels. As an advanced developer, it definitely serves as suitable reference material for Spring-based projects
By Sivaraman S on 5/5/2022
Pros : 1. Information is presented in clear and concise fashion 2. Assignments are relevant and helps build a firm grasp on the topics 3. TDD is embraced throughout the course 4. Various JPA strategies - jdbc template, entity manager , hibernate are covered 5. Appendix section provides good tips and tricks for useful plugins and integration with docker Cons: 1. Course does feel a bit streched out ; few concepts felt repetitive 2. Later sections of the course i.e hibernate mappings , does not have any assignments ; and it felt a bit rushed as compared to the introductory concepts
By Glenn Lacco on 2/7/2022
John's live coding approach is engaging and practical. I am gaining confidence in using and troubleshooting the Spring/Hibernate environment. Thanks for the bonus vids, which are helping me decide on what to tackle next, it will be Docker (or Microservices, or Security :) )
By Keith Crowe on 1/9/2022
Another excellent course by John. Course include the right amount of live coding by John as well as assignments to get real world coding examples. He also makes mistakes and leaves them in the course along with the remedy for those mistakes. This is crucial because inevitably we will make mistakes when coding ourselves. The inclusion of starting and ending resources is nice because it allows student to code along in the live coding and compare if he or she gets into a bind.





![[NEW] Spring Boot 4, Spring Framework 7: Beginner to Guru](/programming/java-spring-framework/images/4522192_d71d_2.jpg?v=1789443739)






