The Best Way to Map Entities with Java Persistence and Hibernate

Get the most out of your data access layer

   Watch Promo

Hibernate is the most popular JPA provider and knowing its inner-workings can make the difference between a high-performance enterprise application and one that barely crawls.

Based on my book, High-Performance Java Persistence, this online workshop is meant to mind the gap between Java developers and database programming.


In this workshop, I'm going to present The Best Way to Map JPA and Hibernate Entities.

Therefore, we are going to discuss:

  • What are the basic entity types and how to choose column types for best performance
  • How to use database-specific column types like JSON, ARRAY, HStore, Inet, and more
  • What are entity identifiers and what auto-generation strategies are offered by JPA
  • What are Hibernate natural identifiers
  • How the Hibernate sequence optimizers work
  • Why you should avoid the TABLE GenerationType strategy
  • Database table relationships (e.g., one-to-many, one-to-one, many-to-many)
  • How does the JPA @ManyToOne relationship work
  • How does the JPA @OneToMany relationship work
  • Unidirectional vs. bidirectional @OneToMany collections
  • How to synchronize both sides of a bidirectional association
  • How does the JPA @ManyToMany relationship work
  • How to map additional columns for a @ManyToMany relationship

Target audience

This workshop is for any Java developer that happens to develop software that interacts with a relational database system.

After watching it, you'll know all sorts of tips that you can readily apply to your current enterprise project.

Created By

Vlad Mihalcea
Vlad Mihalcea

Vlad Mihalcea is a Java Champion and one of the top Hibernate ORM project committers. He created the Hypersistence Optimizer tool which scans your application configuration and mappings and tells you what changes you need to do to speed up your data access layer.

He's been answering thousands of questions about Hibernate and JPA on StackOverflow for which he's got gold badges for Hibernate, Java, and JPA tags.

Whenever he finds something interesting, he likes to share it on his personal blog. He believes in Open Source Software, and he thinks every developer should get involved, one way or the other.

If he doesn’t find a suitable tool for a job, he takes initiative and starts a new open source project, like Hibernate Types or FlexyPool.

Course Curriculum

Available in days
days after you enroll

Frequently Asked Questions

When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.
How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.

Great workshop!

Vlad guides you from basics to very complex topics with ease. He explains everything in a very detailed way and does his best to answer all your questions.

- Giseth Johana Grimaldo, Software Developer - Universidad Tecnológica de Pereira