Advanced Hibernate Workshop

30.11.-2.12.2021 - Online

Start implementing your persistence layer with ease and confidence!

Steve Ebersole

Lead Developer for
Hibernate ORM

Thorben has been part of a group of community experts for a long time, helping Hibernate users via his blog posts, articles and various forums. He has a lot of great Hibernate insights to share.

Ian Wesley

VP Product Development at Bravado Health

Thorben demonstrated his mastery of Hibernate and also showed he is an efficient programmer as well.

Lukas Eder

CEO at Data Geekery,
Java Champion

Thorben not only excels with his knowledge about modern JPA API usage – he also consistently stresses the importance of knowing the underlying SQL technology.

Stop Copying Random Code Snippets And Finally Create Complex Mappings With Ease And Confidence!

Lots of developers struggle to implement complex mappings with Hibernate. They copy code snippets from Stack Overflow without knowing what the code actually does, hoping that it solves their mapping issues. They work overtime and miss deadlines because they can’t get a feature to work and bugs start piling up.

What if I told you that this doesn't have to be the case?

What if I told you that Hibernate makes the implementation of complex persistence layers quick and easy?

What if I told you that knowing Hibernate's advanced features and their side effects is the key to working on interesting tasks and being appreciated by your manager and team members as a true expert and at the same time, allowing you to spend your evenings and weekends with your friends and family?

For me, that has been the story of my career. My Hibernate expertise was one of the building blocks of my corporate career and sharing this knowledge is now the basis of my freelance business.

And I created the Advanced Hibernate Workshop to share that knowledge with you.

Using Hibernate In The Wrong Way Creates More Problems Than It Solves

What most developers do, when they have to implement complex requirements with Hibernate, is they copy code snippets from Stack Overflow or implement workarounds in their business code. But for most of them, none of that works.

  • You are the only person who knows your business model and all the requirements your application needs to fulfill. Other developers, who don't have this information, can't decide what solution is a good fit for your application.
  • Copied code often causes unexpected side effects if you don't know how a feature works and when to use it. That’s especially the case if you don’t know how much the person who answered your question actually knows about Hibernate. In the worst case, the suggested mapping creates more issues than you already had and you will only recognize that after you have deployed your code to production.
  • You don't learn anything about Hibernate's mapping capabilities if you just copy code from the internet. When you have to implement something similar again, you will not be any wiser, and you can't grow your expertise and career with this approach.

And what happens if you just do nothing? If you just keep doing what you’ve been doing?

You will pile up more and more problems hidden in your persistence layer.

You will spend more and more time fixing bugs and fighting inefficient, overly complex mappings and business logic instead of working on interesting new features.

In the end, you will be stuck in a rut, working long evenings and weekends while your managers complain about the bad quality of your code and the long development cycles.

How I Learned To Use Hibernate The Right Way

I tried the same approach as you did. I copied code snippets from Stack Overflow and blog articles, only to find that they didn’t work in my project, or that they caused other problems not mentioned in the articles.

The situation was frustrating, and I recognized that this approach wasn't working. 

You need to really understand Hibernate, with its complex features and their side effects, so that you can choose the right one for your application. Otherwise, each decision comes down to pure luck. To make it even worse, you often need to wait for your users to use your changes before you know if you made the right decision or whether it caused side effects you didn't find on your test system.

Years ago, I got fed up with this needless guessing game. I knew that other teams were using Hibernate with huge success. There had to be a better way.

Stop Guessing, Make Educated Decisions!

I started to learn how Hibernate’s advanced features work so that I could use them correctly.

Instead of copying random code snippets, I started to dive deeper and put a lot of effort into learning as much as I could about Hibernate. I read the documentation, the JPA specification and various books, I participated in online and offline discussions and tried lots of things myself.

After a while, all the previously disjointed bits of knowledge and understanding began to form a complete picture. One in which the different features began to work together and in which the subtle comments I found in some articles started to make sense:

  • I quickly began to understand why certain features provided a great solution for some use cases but didn’t work that well for others.
  • As I gained a better understanding of Hibernate, implementing complex persistence layers became easier and easier. I was able to implement my use cases faster and with fewer bugs. 
  • As I learned about Hibernate and reaped the benefits of my studies, I also regained the feelings of enjoyment and fascination that I had felt when I first started to use Hibernate.
  • And I saw these same feelings when I shared my knowledge with my co-workers and showed them how easy Hibernate often makes the implementation of complex use cases. Instead of being frustrated and blaming the framework, they used Hibernate with confidence and implemented complex requirements with ease.

Nowadays, I use the same knowledge to help teams all over the world as a freelance consultant, coach, and trainer. It’s always amazing to see how a better understanding of Hibernate can improve your productivity and get you one step closer to an enjoyable and successful career.

It Worked For These People, And It Will Work For You

Based on the insight I gained, I began to choose the optimal Hibernate feature for my use cases, to implement them with ease and enjoyment and to get recognition for my work.

But don't just take my word for it. Here is what other people say:

We have included it in our standard training library

Using the more advanced parts of object relational mapping, like dealing with complex inheritance structures, has never been easy.

Thorben explains them in his Advanced Hibernate Workshop in an easy-to-understand series of lessons and exercises. Implementing complex mapping structures is a breeze after this.

We have included it in our standard training library for new developers.

Stephan Knitelius  //  Senior Consultant

Finally, I learned how to use criteria queries

Great hands-on workshop about Hibernate's advanced features by Thorben Janssen.

Finally, I have learned how to use criteria queries and stored procedures with Hibernate.

Gregor Karl Frey  //  Chief Development Architect at SAP

Great combination of lectures, example projects and exercises

The training course provides a great combination of lectures, slides, example projects with JUnit tests and exercises with solutions.

The Advanced Hibernate Workshop helped me to understand Hibernate much better and I recommend it to everyone who is using Hibernate.

Jean-Claude Brantschen  //  Software Engineer

Now It’s Your Turn

When you enroll in the Advanced Hibernate Workshop, we will meet online on November 30th-December 2nd, 2021. The material and level of interactivity of the workshop will be identical to a typical in-person workshop.

I will teach you all you need to know about Hibernate's advanced features so that you can

  • Implement your use cases with ease and enjoyment
  • Get recognized by your co-workers and managers as a Hibernate expert and
  • Work on challenging tasks during the day while enjoying your free time in the evening.

You also get lifetime access to my Advanced Hibernate Online Training, which is the online version of the workshop. So, whenever you are not exactly sure how to use one of the features I showed you during the workshop, you can watch the corresponding video. This gives you the best of both worlds. You get:

  • All your immediate questions answered during the in-person workshop,
  • The opportunity to connect with other developers at a live event and
  • Ongoing access to the course videos so that you can refresh your knowledge whenever necessary. 

The Advanced Hibernate Workshop consists of 10 modules with 33 lectures and example projects and exercises that show you how to use Hibernate's advanced features to implement complex requirements.

Advanced Mappings

Learn about advanced mapping concepts for handling complex table models and legacy databases.

  • Lecture 1: Relationships With Additional Attributes
  • Lecture 2: Composite Primary Keys
  • Lecture 3: Cascading
  • Lecture 4: Generated Columns
  • Lecture 5: Embeddable
  • Lecture 6: Formula
  • Lecture 7: Column Transformer
Criteria API

Create dynamic, type-safe queries at runtime with the Criteria API and JPA's Metamodel classes.

  • Lecture 8: Criteria API
  • Lecture 9: JPA Metamodel

Understand JPA's and Hibernate's different inheritance strategies and when to use them.

Listeners and  Events

Learn about the difference between EntityListeners and Lifecycle Events and how you can use them to execute custom code.

  • Lecture 16: Lifecycle Callbacks
  • Lecture 17: EntityListener
  • Lecture 18: When To Use Which Approach
Custom Data Types

Support custom and database-specific data types with AttributeConverter and UserTypes.

  • Lecture 19: AttributeConverter
  • Lecture 20: UserTypes
  • Lecture 21: Choose The Right Approach For Your Use Case

Understand Hibernate's concurrency handling to avoid issues in production.

  • Lecture 22: Introduction To Concurrency Management
  • Lecture 23: Pessimistic Locking
  • Lecture 24: Optimistic Locking

Use Hibernate's multi-tenancy feature to support multiple, independent tenants with a single application.

  • Lecture 25: Concept of multi-tenancy
  • Lecture 26: Technical options with Hibernate
Hibernate-Specific Queries

Load multiple entities in batches or by their natural ID with Hibernate's proprietary API's.

  • Lecture 27: Load by natural key
  • Lecture 28: Load by multiple IDs
Java 8 Support in Hibernate

Learn about Java 8 support in Hibernate 5 and how you can use it to retrieve query results as a Stream or map classes of the Date and Time API.

  • Lecture 29: Date and Time API
  • Lecture 30: Optional
  • Lecture 31: Streams
Patterns and Anti-Patterns

Understand common Hibernate patterns and why you should or shouldn't use them in your project.

  • Lecture 32: Patterns
  • Lecture 33: Anti-Patterns

About the Trainer

My name is Thorben Janssen, and I'm a freelance consultant, trainer, and international speaker specialized in solving Java persistence problems with JPA and Hibernate. I'm also the author of the Amazon bestselling book Hibernate Tips - More than 70 solutions to common Hibernate problems.

For the last 15 years, I have been using Hibernate and JPA in all kinds of projects. From small ones with very aggressive timelines to huge projects that had to handle thousands of users.

The requirements of these applications were very different, and I learned that Hibernate provides excellent solutions for all of them. You just have to understand the features with their advantages and disadvantages.

I'm looking forward to showing you how to use Hibernate's advanced features so that you can create incredibly fast and reliable persistence layers.

Advanced Hibernate Workshop


9:00 - 17:00 CET November 30th 2021
9:00 - 17:00 CET December 1st 2021
9:00 - 17:00 CET December 2nd 2021
(contact me for alternatives)


Online via Zoom

Workshop Material:

Example projects for all lectures

Practical exercises and solutions

Comprehensive handout

Participation certificate

Online Course:

Advanced Hibernate Online Training (Certification Class)

Single Seat


per Seat (plus 19% VAT)

  • 3 day Advanced Hibernate training with Thorben Janssen
    • Date: November 30th - December 2nd 2021
    • Venue: Online via Zoom
  • Example Projects for all Lectures
  • Practical Exercises & Solutions
  • Extensive Handout
  • Video Course: Advanced Hibernate Online Training
  • Participation Certificate

Team Package (3+ Seats)


per Seat (plus 19% VAT)

  • 3 day Advanced Hibernate training with Thorben Janssen
    • Date: November 30 - December 2nd 2021
    • Venue: Online via Zoom
  • Example Projects for all Lectures
  • Practical Exercises & Solutions
  • Extensive Handout
  • Video Course: Advanced Hibernate Online Training
  • Participation Certificate

Enroll Now

To enroll in the training, please fill out the form below. I will email you a formal quote and an invoice to secure your seat.

  • Please enter a number from 1 to 10.
  • This field is for validation purposes and should be left unchanged.


Here are answers to some frequently asked questions:

What version of Hibernate is this course be based on?

What other technologies should I be familiar with?

Do I have to have any experience with Hibernate ORM?

Didn't find the answer you're looking for?

Don't Wait Any Longer:
Join The Advanced Hibernate Workshop Today!