High-Performance Java Persistence Newsletter, Issue 50
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, which explains the bad parts of PostgreSQL. While PostgreSQL is a great open-source database system, it also has some architectural issues that you must be aware of if you plan on using PostgreSQL.
If you’re using Spring, Then you should definitely read this article because it explains to you how read-write and read-only transactions can be sped up by delaying the connection acquisition as much as possible.
Another great read is this article, as it explains how database systems execute reads. Understanding database internals is of paramount importance when designing high-performance database applications.
As a backend developer, when dealing with large volumes of data, stored procedures can help you implement very efficient solutions. In this article, I show one of the best ways to call database stored procedures with Java.
SQL:2023 is ready and provides tons of enhancements. If you are curious about what the latest SQL version provides for you, then check out this article.
If you’re using PostgreSQL, enabling the automatic Explain Analyze feature can be extremely useful when dealing with queries that only run slowly from time to time. Check out this article for more details about how you can achieve this goal.
Best Tweets
Here are the best tweets I posted since the last newsletter:
A beginner’s guide to database deadlockhttps://t.co/fD16c9a379 pic.twitter.com/7auUQmV7lb
— Vlad Mihalcea (@vlad_mihalcea) April 20, 2023
Answer: Why use JPA instead of writing the SQL query using JDBC?https://t.co/5JCjhilkRW pic.twitter.com/t93px3mkeH
— Vlad Mihalcea (@vlad_mihalcea) April 10, 2023
🔥 As a backend developer, when dealing with large volumes of data, stored procedures can help you implement very efficient solutions.
— Vlad Mihalcea (@vlad_mihalcea) April 29, 2023
☕ Check out my latest article about the best way to call DB stored procedures with Java.https://t.co/7tjF5Xtbde pic.twitter.com/beIO46QVOG
Do you need a database transaction for reading data? https://t.co/6SHdcQ0DM9 pic.twitter.com/cye6JvXuCv
— Vlad Mihalcea (@vlad_mihalcea) April 8, 2023
Read-write and read-only transaction routing with Springhttps://t.co/LWVFjXQ57f pic.twitter.com/ukojzTBz2M
— Vlad Mihalcea (@vlad_mihalcea) May 1, 2023
Project Releases
The 2.7 version of the amazing Hypersistence Optimizer performance tool has been released. For more details about the extra optimizations, you will get by upgrading to this version, check out the release notes.
Hibernate ORM released two versions for the 6.2 branch:
MySQL released the 8.0.33 version, and it provides several bug fixes that you might be interested in if you are using MySQL 8.
The 8.0.33 version of the MySQL JDBC Driver has also been released, bringing you several bug fixes.

Get in touch with my latest articles!
StackOverflow Answers
The following StackOverflow answers have been trending since the last newsletter episode:
- Hibernate 6 SQLFunctionTemplate alternative
- Junit is successful when using save but not inserting data in MySQL tables, even after flushing the Hibernate
- How to delete entity with JOINs using JPA and Hibernate
- JPA Criteria Query Group By uses only the id
- How to register SQL functions so that you can call them in JPQL or HQL queries with JPA and Hibernate