High-Performance Spring Data JPA

High-Performance Spring Data JPA 


Get the most out of your Spring application

Want to run your Spring application at high speeds?

  • 1
    SPRING Essentials
    Spring is used by the vast majority of Java projects nowadays, so knowing how things work behind the scenes can make the difference between a high-performance Spring application and one that barely crawls.
  • 2
    Adding JPA or Hibernate annotations is pretty easy, but do you know the performance implications of each JPA or Hibernate feature your application makes heavy use of?
  • 3
    Spring Data JPA
    Spring Data JPA is very convenient as it boosts productivity, but some of its features can be very detrimental to application performance. In this training, we are going to unravel those so that you can avoid them sooner rather than later.


The High-Performance Spring Data JPA training is aimed to level up your team's data access skills, covering Spring Framework, Spring Data JPA, Spring Boot, as well as JDBC, Hibernate, and many database essential topics (Oracle, SQL Server, MySQL or PostgreSQL).

Day 1


Duration: 1h 45m

  • O/R Mismatch
  • Schema Management
  • Logging SQL Statements
  • Integration Testing with Testcontainers

Mapping Identifiers

Duration: 55m

  • Natural and Surrogate Keys
  • UUIDs and Clustered Indexes
  • JPA and Hibernate Identifiers
  • Hibernate Identifier Optimizers (e.g., pooled, pooled-lo)

Mapping Types

Duration: 50m

  • Compact Column Types
  • JPA and Hibernate Types
  • Custom Hibernate Types
  • The Hypersistence Utils project


Duration: 1h 45m

  • JPA and Hibernate Relationships
  • Equals and Hashcode
  • ManyToOne and OneToMany
  • OneToOne and ManyToMany

Persistence Context

Duration: 1h 45m

  • Persistence Context and Entity State Transitions
  • Flushing and Hibernate Action Queue 
  • Dirty Checking Mechanism
  • Bytecode Enhancement Dirty Checking

Day 2


Duration: 1h 45m

  • Statement Fetching and Streaming
  • Pagination
  • DTO projections
  • Entity and association fetching
  • LAZY vs. EAGER
  • OSIV Anti Pattern
  • Query Plan Cache


Duration: 1h 45m

  • Cache synchronization strategies
  • Database Caching
  • Application-Level Caching
  • Hibernate Second-Level Caching

Batching, Statement Caching

Duration: 1h 45m

  • Statement and Prepared Statement Lifecycle
  • Statement Batching and Batch Updates
  • Preventing SQL Injection
  • Statement Caching

Connection and Transaction


Duration: 1h 45m

  • Spring and Hibernate Connection Management
  • Connection Pooling
  • Connection Monitoring
  • Read-Only and Read-Write Transactions
  • Transaction Routing

What People Are Saying...

Elod Balázs

Operations Manager - NTT DATA

As Java developers, we all use JPA and inherently Hibernate at one point in time in our projects. Sometimes it happens that some of us just use and abuse this technology.

The presentation has the right topics, order and proper information to get the beginners and the “lost” intermediate user on the right track. You are a senior, and you wonder if it’s the right thing for you? Well, you can get under the hood and understand the underlying mechanisms and implementations used throughout the framework. Moreover, you will learn about advanced topics like caching, locking mechanisms and concurrency control.

I strongly believe that this is a great all-around training when it comes to ORM concepts.

Mihai Costin

Senior Software Engineer - Moqups

I've been using Hibernate for over 8 years in various projects, and I was thinking "what's more to learn about it?". Well, it turns out I was wrong. I've learned a lot after attending Vlad's training.

It was a very educative and enlightening course, backed up by a lot of code samples, answered questions, do's and don'ts in the Hibernate world. There's a huge difference between using Hibernate and using it right.

Fit to your needs

There is no limit of students that can enroll in this training. If you have multiple teams that need to attend it, the cheaper it gets per person.

The full on-site training spans over the course of 2 days, but it can be adapted to be run in shorter online sessions. And we can arrange the agenda so that we cover exactly what you need.

All source code is in a GitHub repository which you set up during the training and can use it later as a Spring Data JPA playing ground.

Contact me

Let me teach you how to run your data access layer at high speeds!

If you want to book an on-site training session, you should email me at vlad@vladmihalcea.com

and discuss it in more detail.