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
Eamonn Boyle

Programming junky with 20 years professional experience. Happiest when helping others code.

Follow Eamonn
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