Java Persistence: Hibernate and JPA Fundamentals

A simple-to-follow and easy-to-understand training course on Java Persistence with JPA by Example
4.5 (664 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
4,912 students enrolled Bestselling in JPA
70% off
Take This Course
  • Lectures 64
  • Length 5.5 hours
  • Skill Level All Levels
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 6/2014 English Closed captions available

Course Description

If you’re a Java programmer who wants to learn the fundamentals and some of the advanced topics of Java persistence with Hibernate, then you’re the one this course is designed for.

We'll be working with Hibernate 4.3.5.Final (and applicable updates for Hibernate 5.0), and using Hibernate as a JPA provider for the most part of this course. You'll be learning the fundamentals and some of the advanced JPA features for object/relational mapping, querying, cachingperformance and concurrency.

Everything important that you're going to experience when you're persisting Java objects with Hibernate is covered during the lectures itself, with the help of animations and stepping through the code. It will allow you to focus more on the concept and the events happening at runtime at the very same time when you're learning a concept, rather than waiting for me go through lengths of coding first before I could show you the same result. And then you practice the same concept with all the source code provided to you after each session that has a lab exercise.

Having said that, I will be first taking you to the level where you feel comfortable enough to start programming with Hibernate. We'll be starting everything from scratch, do the required installations, set up the development environment and learn how to configure logging, for you to be able to see and understand the events taking place at runtime. We'll also learn how to step through our code at runtime, for you to be able to see the behind-the-scene story of Java persistence with Hibernate. And only after that I'll ask you to start coding yourself. So don't you worry even if you know absolutely nothing about persisting Java objects with Hibernate.

If you're asking that what does persisting objects really mean? Don't you worry, we're going to cover even that. So, all you need to learn, enjoy and have a good experience with this course is the basic understanding of Java. That's it, I promise.

So, whether you're a beginner or already have some experience with Hibernate, we're going to cover all the grounds for you to be a confident and competent Hibernate programmer by the end of this course.

Everything we're going to learn in this course, we'll be doing it with examples. And we'll also be discussing the best practices to keep in mind when you're working on real world projects.

And if you're already good at Hibernate and JPA, you'll probably find this course to be useful for filling the gaps in your Hibernate and JPA knowledge.

Please drop me a message, in case you need me for anything to get the best out of this course for you.

And I might add more lectures to this course to make this course even better for you. So I'll appreciate your feedback, on how to improve this course for you.

And yes, to get the best out of this course, especially if you're a beginner, please don't jump through the lectures and complete the Lab Exercise of the previous lecture, before moving on to the next one.

And all the video lectures/sessions are in 16:9 HD, so please watch them in HD.

What are the requirements?

  • Basic understanding of Java
  • Prior exposure to SQL can be helpful, but its not a pre-requisite for the course

What am I going to get from this course?

  • By the end of this course, you'll be having a strong foundation on Java persistence with Hibernate
  • You'll learn the fundamentals and some of the advanced JPA features for object/relational mapping, querying, caching and performance
  • You'll learn how to use Hibernat as a JPA provider
  • You'll get a working experience on Hibernate and JPA project
  • You'll get a working experience on Eclipse IDE, MySQL and HeidiSQL
  • You'll be introduced to JBOSS Logging with Log4j
  • You'll be introduced to Apache Commons Lang
  • You'll learn some of the best practices of Hibernate

Who is the target audience?

  • Java students who want to learn Java persistence with Hibernate
  • Students who want to learn Java Persistence API (JPA)
  • Working professionals on Java/JavaEE
  • Java/JavaEE trainers
  • Java greenhorns interested in having JPA with Hibernate in their armory

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: About this Course
Section 2: Understanding object/relational persistence
Object Persistence
Relational Database
Object Model and Relational Model
Object Relational Impedance Mismatch
Object Relational Mapping
Installing MySQL
Installing Eclipse IDE
Lab - Object Relational Mapping
Lab Exercise - Object Relational Mapping
1 page
Section 3: Getting Started with Hibernate and JPA Annotations
What is Hibernate
Hello World with Hibernate and JPA Annotations
Lab - Hello World with Hibernate and JPA Annotations
Lab Exercise - Hello World with Hibernate and JPA Annotations
Lab Exercise - Logging
1 page
Manipulating Objects
Lab Exercise - Manipulating Objects
1 page
Section 4: Mapping Concepts
Aggregation and Composition
Entities and Value Types
Component Mapping
Lab Exercise - Component Mapping
1 page
Mapping Associations
Lab Exercise - Mapping Associations
1 page
Lab Exercise - Cascades
1 page
One-To-Many Relationship
Lab Exercise - One-To-Many Relationship
1 page
One-To-One Relationship
Lab Exercise - One-To-One Relationship
1 page
Many-To-Many Relationship
Lab Exercise - Many-To-Many Relationship
1 page
Section 5: Getting Started with JPA
What is JPA
Hibernate as JPA Provider
Lab Exercise - Hibernate as JPA Provider
1 page
Working with Objects
Lab Exercise - Working with Objects
1 page
Caching Objects
Lab Exercise - Caching Objects
1 page
SQL Joins
Lazy Fetching
Lab Exercise - Lazy Fetching
1 page
Equals and HashCode
Lab Exercise - Equals and HashCode
1 page
Query Language
Lab Exercise - Query Language
1 page
Inheritance Mapping and Polymorphic Queries
Lab Exercise - Inheritance Mapping and Polymorphic Queries
1 page
N + 1 Selects Problem
Lab Exercise - N + 1 Selects Problem
1 page
Batch Fetching
Lab Exercise - Batch Fetching
Merging Detached Objects
Lab Exercise - Merging Detached Objects
1 page
Optimistic Locking and Versioning
Lab - Optimistic Locking and Versioning
Lab Exercise - Optimistic Locking and Versioning
1 page
Isolation Rules
Lab Exercise - Isolation Rules
Caching and Object Identity
Lab Exercise - Caching and Object Identity
Second Level Caching
Lab Exercise - Second Level Caching
Section 6: Best Practices
Best Practices

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Deshraj Singh Kiran, Trainer and Consultant at MavenEdge

I am a Bachelor of Technology (B.Tech) from Indian Institute of Technology (IIT) with around 9 years of application development experience (as of April, 2016). I have been developing applications of various complexities using Java-based technologies and frameworks such as Java/JavaEE, Spring, Spring MVC, Spring WebFlow, Spring Security, Portlet, Spring Portlet MVC, Struts, Hibernate, DWR, Lucene, Android, MEAN stack and Hadoop.

Besides being a trainer at MavenEdge, I am also a working Software Consultant. I've also been a corporate trainer on Java technologies and frameworks.

I've worked on Tomcat, Glassfish, Liferay Portal, Jenkins for application development, deployment and release management.

I've worked more on Maven than Ant. And in the world of relational database management systems, I've worked mostly on MySQL.

For test driving my code I've used JUnit, EasyMock, Mockito frameworks.

Besides working on the server-end, I've also explored the front-end world of JavaScript, jQuery, Backbone and Require JS.

I've worked on projects on Android and MEAN stack. I've also been the Architect for some of the projects I've worked on. 

Currently, I am working on Hadoop projects.

Ready to start learning?
Take This Course