High-Performance Spring Data JPA
Training
Get the most out of your Spring application
Want to run your Spring application at high speeds?
- 1SPRING 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. - 2JPA AND HIBERNATE
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? - 3Spring 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.
Curriculum
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
Introduction
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
Relationships
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
Fetching
Duration: 1h 45m
- Statement Fetching and Streaming
- Pagination
- DTO projections
- Entity and association fetching
- LAZY vs. EAGER
- OSIV Anti Pattern
- Query Plan Cache
Caching
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
Management
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.