Hibernate Performance Tuning Workshop

4.-6.12.2019 - Lindner Congress Hotel Düsseldorf (Germany)

Get the best performance out of Hibernate and JPA

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 Struggling With Your Slow Persistence Layer And Finally Unlock Hibernate’s Best Performance!

Lots of developers struggle with Hibernate performance problems. Changes that worked perfectly fine on the test system break the performance of the production system. Their users complain about slow response times, and their database administrators blame them for executing too many or inefficient queries.

In most cases, they don’t even know why Hibernate executes so many queries or how they could improve them. They then try to solve these issues by copying code snippets from Stack Overflow, hoping that it solves their problems without introducing new ones. All of this causes stress and frustration and is often the reason for overtime and missed deadlines.

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

What if I told you that Hibernate includes lots of performance optimizations and that you can use them to implement high-performance persistence layers with ease?

What if I told you that knowing Hibernate's performance optimizations and advanced features are the key to finding and fixing performance problems before they cause trouble in production? This enables you to work on interesting tasks and you will be 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 I’m now helping teams to optimize their persistence layers as a freelance consultant.

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

Performance Problems Grow If You Don’t Fix Them Proactively

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

  • You are the only person who knows your application and the performance requirements of all use cases. Other developers, who don't have this information can't decide if a change will cause even bigger performance problems in another use case.
  • 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 performance pitfalls and optimizations 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, and your application will get slower and slower. 

You will spend more and more time fixing bugs and fighting performance problems instead of working on exciting new features. 

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

How I Learned To Build
High-Performance Persistence Layers with Hibernate

I tried the same approach as you did. I copied code snippets from Stack Overflow and blog articles, only to find out 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 how Hibernate works and the performance impact each feature has so that you can choose the right one for your application. Otherwise, each decision comes down to pure luck. Sometimes your code will be lightning fast, and other times it will be horribly slow. To make it even worse, you often need to wait for your users to use your change until you know whether 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 to build high-performance persistence layers. There had to be a better way.

Stop Guessing, Make Educated Decisions!

I started to learn how Hibernate works internally and all the performance improving features it offers so that I could pick the right one for each use case.

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 started to work together and in which the subtle comments I found in some articles began to make sense:

  • I quickly began to understand why certain features improved the performance of some use cases but didn’t work that well for others.
  • As I gained a better understanding of Hibernate, implementing high-performance persistence layers became easier and easier. I avoided typical performance pitfalls and created maintainable mappings and queries, that performed amazingly well. 
  • As I learned about Hibernate and started to fix performance problems before our users found them in production, I also regained the enjoyment and fascination that I had felt when I first began to work as a software developer.
  • And I saw these same feelings when I shared my knowledge with my co-workers and showed them how easy Hibernate often makes it to fulfill high-performance requirements. Instead of being frustrated and blaming the framework, they used Hibernate with confidence and started to fix performance problems before they caused trouble in production.

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 helps you to avoid common performance problems and gets 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 doubled the performance of our services

I have been using Hibernate on and off for several years to supplement our custom Java database framework.

A year ago, we decided to migrate our monolithic application to microservices using JPA/Hibernate as the persistence framework. We have aggressive timelines so we needed to accelerate our knowledge of how to properly use hibernate so that our services would scale to meet the needs of our customers.

We discovered that using Hibernate was easy but, using it so that it scaled, required deeper knowledge. I came across Thoughts-On-Java while scouring the web for information on performance and pitfalls.

After subscribing to the newsletter, it became clear that Thorben has a firm grasp on the exact issues we were addressing. [...]

As a result of the training, we confidently refactored our code to follow the patterns described in the training course and doubled the performance of some of our services.

I recommend the training to anyone who wants their Hibernate applications to scale and to be maintainable in the future.

Mike Hills  //  Senior Microservice Architect

I'm very happy to have visited this very informative ORM course

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

As a very SQL-oriented person, I’m very happy to have visited this very informative ORM course, which helped me better understand the persistence perspective.

Lukas Eder  //  Founder and CEO at Data Geekery, Java Champion

Now It’s Your Turn

When you enroll in the Hibernate Performance Tuning Workshop, we will meet at the Lindner Congress Hotel in Düsseldorf on December 4th-6th, 2019. It's close to Düsseldorf Airport (DUS), which offers lots of non-stop flights to and from most bigger European airports.

I will teach you all you need to know about Hibernate's performance pitfalls and optimization options so that you can

  • Build high-performance persistence layers 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 Hibernate Performance Tuning Online Training, which is the online version of the workshop. So, whenever you are not exactly sure how to fix a performance problem or 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 videos course so that you can refresh your knowledge whenever necessary.

The Hibernate Performance Tuning Workshop consists of 6 modules with 21 lectures and example projects and exercises that show you how to use Hibernate to create a fast and reliable persistence layer.

Find Performance Problems

Learn about typical causes of performance problems and how to identify them at the early stages of the project.

  • ​Lecture 1: Typical Causes Of Performance Problems
  • Lecture 2: Identify Performance Problems
  • Lecture 3: Logging
Prevent Duplicate Reads

Understand Hibernate's different caches and how to combine them to get the best performance.

Speed-up write operations

Select the best option to implement efficient write operations.

  • ​Lecture 16: Bulk operations
  • Lecture 17: Batching of write operations
  • Lecture 18: Generating primary keys
Improve Read Operations

Use different techniques to solve the most common types of performance issues.

  • Lecture 4: Optimizing Queries
  • Lecture 5: Fetch Strategies
  • Lecture 6: Query Specific Fetching
  • Lecture 7: Bind Variables
  • Lecture 8: Projections
  • Lecture 9: Byte Code Enhancement
Move Logic to the Database

Learn about the benefits of performing logic in the database and how to achieve that with Hibernate.

  • ​Lecture 14: Database functions
  • Lecture 15: Stored procedure calls
Manage Concurrency

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

  • ​​Lecture 19: Introduction To Concurreny Management
  • Lecture 20: Pessimistic Locking
  • Lecture 21: Optimistic Locking

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.

Hibernate Performance Tuning Workshop


4.-6.12.2019 (contact me for alternatives)


Lindner Congress Hotel in Düsseldorf (Lütticher Str.130, D-40547 Düsseldorf, Germany) near DUS Airport

Workshop Material:

Example projects for all lectures

Practical exercises and solutions

Comprehensive handout

Participation certificate

Online Course:

Hibernate Performance Tuning Online Training (Certification Class)

Single Seat


per Seat (plus 19% VAT)

  • 3 day Hibernate Performance Tuning training with Thorben Janssen
    • Date: 4.-6.12.2019
    • Venue: Lindner Congress Hotel in Düsseldorf (Germany) near DUS Airport
    • Catering: Lunch, coffee and snacks during the breaks, beverages during the workshop
  • Example Projects for all Lectures
  • Practical Exercises & Solutions
  • Extensive Handout
  • Video Course: Hibernate Performance Tuning Online Training
  • Participation Certificate

Team Package (3+ Seats)


per Seat (plus 19% VAT)

  • 3 day Hibernate Performance Tuning training with Thorben Janssen
    • Date: 4.-6.12.2019
    • Venue: Lindner Congress Hotel in Düsseldorf (Germany) near DUS Airport
    • Catering: Lunch, coffee and snacks during the breaks, beverages during the workshop
  • Example Projects for all Lectures
  • Practical Exercises & Solutions
  • Extensive Handout
  • Video Course: Hibernate Performance Tuning 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 will 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 Hibernate Performance Tuning Workshop Now!