High-Performance Java Persistence Newsletter, Issue 44
Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Wouldn’t that be just awesome?
Well, Hypersistence Optimizer is that tool! And it works with Spring Boot, Spring Framework, Jakarta EE, Java EE, Quarkus, or Play Framework.
So, enjoy spending your time on the things you love rather than fixing performance issues in your production system on a Saturday night!
Introduction
Welcome to a new issue of the High-Performance Java Persistence Newsletter in which we share articles, videos, workshops, and StackOverflow answers that are very relevant to any developer who interacts with a database system using Java.
Articles
The pick of this edition is this article about the high-performance queuing design employed by Shopify to scale Flash Sales.
Related to high-performance database systems, I also wrote two articles about YugabyteDB:
Another very good article is this one about how the Spring framework is going to embrace Loom Virtual Threads.
Related to Spring, you may also like this article about building your own Spring Data base Repository that avoids dangerous methods, such as findAll
or deleteAllInBatch
.
Another article I enjoyed reading is this one about the accidental complexity of jumping to cloud computing. Keeping it simple is the best way to go in the vast majority of use cases.
If you are using PostgreSQL, you may want to read this article about speeding up ORDER By queries.
Videos
I uploaded a new video on YouTube about the best way to fetch SQL query projections using JPA:
This video is part of my High-Performance SQL video course, so if you like this episode, you are going to love the video course.
Best Tweets
Here are the best tweets I posted since the last newsletter:
The best way to log SQL statements with Spring Boot
— Vlad Mihalcea (@vlad_mihalcea) October 10, 2022
https://t.co/23aHhyk9u3 pic.twitter.com/6oLB7H0sHM
Tab-Driven Development is how I write software.
— Vlad Mihalcea (@vlad_mihalcea) October 31, 2022
The more complex the task, the more browser tabs I open.
If you enjoy learning, software development is heaven.
— Vlad Mihalcea (@vlad_mihalcea) October 17, 2022
If you don't enjoy learning, software development is hell.
The evolution of Scaling
— Vlad Mihalcea (@vlad_mihalcea) October 4, 2022
1️⃣ Vertical Scaling
2️⃣ Horizontal Scaling
3️⃣ Credit Card Scaling (Cloud Computing)
The best way to use the Spring Transactional annotation
— Vlad Mihalcea (@vlad_mihalcea) October 21, 2022
https://t.co/G4AZec7bjb pic.twitter.com/K1ngG4zEZZ
Project Releases
MySQL 8.0.31 has been released, and it introduces some query parsing optimizations.
The MySQL JDBC Driver also released its 8.0.31, and a change that’s worth mentioning is that the Maven dependency is now com.mysql.mysql-connector-j
.
The 2.20 version of the Hibernate Types OSS project has been released, and it provides support for mapping Set
collections to DB arrays, as well as several enhancements to the MonetaryAmmount
and Range
types.
Hibernate ORM has released several new versions for the 6.1 branch:

Get in touch with my latest articles!
StackOverflow Answers
The following StackOverflow answers have been trending since the last newsletter episode:
- How to split read-only and read-write transactions with JPA and Hibernate
@MappedSuperclass
is not an@Entity
in JPA?- How to disable optimistic locking in Spring Data JPA
- HQL query when POJO is not relevant or available
- Hibernate native query optional parameter throws ‘operator does not exist: bigint = bytea’