High Performance Java Persistence

  • 1-3 Days
  • Intermediate
  • Virtual | Classroom
  • £ On Request

Deep dive Java persistence for intermediate to advanced programmers

Book For My Team

About The Trainer

Vlad Mihalcea, is CEO of Hypersistence and works as a Developer Advocate for the Hibernate project. He is also author of the book High-Performance Java Persistence.


The High-Performance Java Persistence training is aimed to level up your team’s data access skills, covering JDBC, Hibernate, and many database essential topics for Oracle, SQL Server, MySQL or PostgreSQL.


Day 1 - Introduction

  • O/R Mismatch
  • JPA vs Hibernate
  • Schema ownership and incremental migrations
  • Integration testing strategies

Hibernate Connection Management

  • Connection Providers
  • Connection Monitoring
  • Statement Logging and the statement count validator

Basic Mappings

  • Types
  • Entity
  • Embedded
  • JPA Identifiers
  • Legacy and enhanced identifier generators (hilo, pooled-lo)


  • Many-to-One
  • One-to-One
  • One-to-Many
  • Many-to-Many
  • Embedded Collections

Day 2 - Inheritance

  • Single table inheritance caveats
  • Joined table inheritance caveats
  • Composition vs inheritance

Entity state transitions

  • Flushing basics
  • AUTO flush caveats
  • Dirty checking
  • Flush operation order
  • Bytecode enhancement dirty checking

Batch updates and ResultSet fetching

  • JDBC batching
  • How to batch INSERT and UPDATE statements
  • How to batch DELETE statements


  • Natural key
  • DTO projections
  • Entity queries
  • Query-time fetching

Concurrency control

  • Isolation levels and database concurrency control
  • Preventing lost updates in long conversations
  • Logical vs physical clock optimistic locking
  • Hibernate collections optimistic locking
  • Version-less optimistic locking
  • Java Persistence locking
  • Explicit OPTIMISTIC Lock Mode


  • Database caching
  • Application caching
  • Second-level cache entries
  • Cache synchronization strategies
  • READ_ONLY CacheConcurrencyStrategy
  • NONSTRICT_READ_WRITE CacheConcurrencyStrategy
  • READ_WRITE CacheConcurrencyStrategy
  • TRANSACTIONAL CacheConcurrencyStrategy
  • Collection Cache
  • Query Cache
Garth Gilmour
Google Developer ExpertGoogle Developer Expert

25 years coding and educating. 1000+ deliveries of (almost) everything to everyone.

Follow Garth
Ryan Adams

Used to make software for learning as a developer, now helping software makers learn.

Follow Ryan
For a breakdown of what to expect in our training, check out our training overview page.

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. Mihai Costin, Senior Software Engineer

Deloitte logo
Atlassian logo
Workday logo
BMW logo
Amex logo
McAfee logo
PWC logo