Improve your coding skills from beginner to expert with the largest online Java e-learning platform

Hibernate and JPA

featuring HQL, JPQL, Optimistic and Pessimistic Locking, Lazy Initialisation, Detached Objects and Performance
  • This Hibernate and JPA training course takes you through all of the major features of Hibernate.
  • The course is fully practical, and is essentially a 23 hour pair programming session. You will develop production standard code, from scratch in your own IDE.
  • The Hibernate Training starts from the absolute basics, and takes you to a professional standard.
  • The JPA Training explains how Hibernate became a Java Standard, and with small changes to your code, you can change which implementation of JPA you work with.


You will need some Java programming knowledge - you will need to be able to create classes and objects, and understand the basic syntax.

No database knowledge is required as an overview of SQL is given.

Contents - contains over 23 hours of video - equivalent to 5 days of live training.


Having problems? check the errata for this course.



23m 55s
A general overview of Hibernate - why would you use it?


Getting Started

60m 52s
We set up your development environment and install Hibernate. Also, an overview of SQL if you need it.


Persisting Objects

31m 24s
How to change a plain Java class into a persitable class.


Configuring Hibernate

40m 33s
How to configure Hibernate, including the hibernate.cfg.xml file


Manipulating Objects

36m 39s
How to update and delete objects.


More on Mapping

47m 54s
More options when you are mapping your classes - @Table, @Column annotations and the difference between field and property access.


Crashes and Logging

22m 17s
How to handle exceptions properly in Hibernate. We also configure log4j to give detailed information that will be useful later.



41m 31s
We create a Many-to-One relationship and study how this affects the database.



56m 8s
We now switch to collections - Sets, Lists and Maps and see how to handle a One-To-Many relationship.


Bi Directional Relationships

32m 23s
One of the biggest mismatches - relations on a database are bidirectional. If you want the same in the Java, you have to work hard!


Many to Many Relationships

28m 23s
This short chapter is followed by a major coding exercise.


equals and hashCode

40m 1s
This is standard Java, but extremely important with databases. We'll also see that autoincrement IDs are not a good choice for implementing equality.


XML Mappings

46m 35s
Optional chapter - only needed if you are using the legacy XML coding style.


Java Persistence API

47m 4s
The JPA is a standardised version of Hibernate - see the differences. We will use JPA for the rest of the course.



28m 0s
Cascades can reduce the amount of persistence code you write.


Embedding Objects

53m 17s
How to use the @Embed and @Embeddable annotations.


Queries - Part One

43m 38s
How to use the HQL and JPQL.


Queries - Part Two

45m 22s
More on HQL and JPQL.


Queries - Part Three

48m 21s
Even more on HQL and JPQL!


Criteria API - Part One

38m 36s
How to use the Criteria API in the Classic Hibernate (ie using Sessions).


Criteria API - Part Two

50m 58s
JPA2 also has a criteria API. Full details, including the TypeSafe API.



64m 14s
Three different strategies for handling inheritance - "Single Table", "Joined Table" and "Class per Table".


Detaching and Merging

52m 40s
What is detaching - and how to use the merge() method. Also covers the classic versions of update() and saveOrUpdate()


Optimistic Locking and Versioning

41m 0s
What is optimistic locking? We see that Hibernate can version objects to prevent concurrent database changes affecting your business process.


Pessimistic Locking

37m 58s
These are real database locks and we explain when they need to be used. Also, the difference between PESSIMISTIC_READ and PESSIMISTIC_WRITE.


Lazy Initialisation

52m 14s
This is Hibernate's biggest performance optimisation. We see how you can avoid the LazyInitializationException.


Tuning Performance

43m 8s
More options for performance tuning, include Batch Fetching.


First Level Cache

39m 6s
Everyone needs to understand the First Level Cache. Full details in this chapter.


Second Level Caching

80m 59s
An optional chapter: we configure EhCache as a second level to tune performance.


Web Applications

78m 27s
We now look at a full application that uses JPA and Hibernate.


Spring Applications

44m 43s
How does Spring help with Hibernate? (Nb you need to have studied the previous chapter before this one).


EJB Applications

51m 51s
If you're using JavaEE with an application server, then this chapter shows how to integrate JPA with that. We use Glassfish as an example.


Course Review

22m 6s
The best books on the market, where to go from here and a few things we missed!


Bonus Chapter - Isolations

17m 58s
This is a short extract from our Spring Fundamentals course, where we cover Isolation levels. This may be of interest if you want to explore locking in a little more detail.

Let the Course Come to You

About Us Pricing Frequently Asked Questions Contact Privacy T&Cs Affiliates and Resellers
Facebook Twitter YouTube LinkedIn