High-Performance Java Persistence Newsletter, Issue 15

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!


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.


The pick of this edition is this article written by Franck Pachot, in which he debunks the myth that SQL JOINs don’t scale.

If you’re using JPA, and you want to customize the way an entity attribute is persisted and fetched, then you could use an AttributeConverter. This article explains how the JPA AttributeConverter works, and how you can use it to persist a java.time.MonthDay entity attribute to a DATE column type.

The Hibernate bytecode enhancement mechanism offers an alternative to the default dirty checking strategy. By default, the bytecode enhancement dirty tracking mechanism intercepts the entity setter method calls to record which entities have been modified. If you want to intercept changes that happen via @Transient methods, then you could use the enhanced enhancement mode. For more details about the enableExtendedEnhancement option, check out this article.

While Hibernate makes it very easy to enable batching for INSERT, UPDATE, and DELETE statements, if you want to modify multiple records that match some filtering criteria, then bulk processing can be more efficient than batching. For more details about this topic, check out this article.

If you’re wondering how SQL-based databases (RDBMS and NewSQL) differ from NoSQL database systems, then this article from IBM is surely going to help you get a better understanding of this topic.

YouTube Video

I added a new YouTube video in which I explain how the JDBC Statement fetch size works on Oracle, SQL Server, PostgreSQL, MySQL. This video episode is part of my High-Performance Java Persistence video course, so if you like the video, you are going to love the video course even more.

Project Releases

Hibernate ORM released the 5.4.20 version, so if you’re using the 5.4 branch, you might want to upgrade to the latest version and benefit from the bug fixes that were added to this version.

Best Tweets

There are many social media platforms, but for me, Twitter is the one I like best. Here are the best tweets I posted since the last newsletter:

Get in touch with my latest articles!

StackOverflow Answers

The following StackOverflow answers have been trending over the past two weeks:

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.