High-Performance Java Persistence Newsletter, Issue 28

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 I wrote about tuning the legacy Caveat Emptor Hibernate application. Even if this is an application written 15 years ago, Hypersistence Optimizer can scan it perfectly and determine what changes are needed in order to speed it up.

Running PostgreSQL in a production environment with the default configuration settings is not a good idea because the initial settings are meant for development environments with limited resources. If you want to know what settings you need to adjust, then check out this Percona article.

If you are using Oracle with JPA and Hibernate, then these 9 high-performance tips are going to help you get the best of your data access layer.

The Percona PMM tool is very useful for analyzing database performance issues, and in this article, you can see a real-life example of how you can remove a CPU bottleneck in a given MySQL application.

If you want to customize the default naming strategy used by Hibernate, then you can define your own physical naming strategy. For instance, you could use this feature to map the Java camelCase identifiers to the camel_case naming conventions used by your relational database system. For more details about this topic, check out this article.

A very nice article I read was this one which shows you that you can use PostgreSQL for simple queue-based processing or pub-sub tasks, which you’d otherwise implement using Redis or some other technology.

SQL and JSON video course

In my previous online workshop, I talked about the best way to store JSON data and how you can query it efficiently when using Oracle, SQL Server, PostgreSQL, and MySQL.

The workshop was recorded, and I edited all the videos. So, if you’re interested in the following topics:

  • When to use JSON with a Relational Database System
  • Oracle JSON column types (VARCHAR vs. LOB), JSON_EXISTS, JSON_VALUE, JSON_QUERY, JSON_MERGEPATCH, JSON_TABLE, and Oracle JSON data indexing
  • PostgreSQL JSON and JSONB types, JSON path expressions, JSON operators, JSON functions, and PostgreSQL JSON data indexing
  • MySQL JSON type, JSON path expressions, JSON operators, JSON functions, and MySQL JSON data indexing

Then, you should definitely join the SQL with JSON video course and watch the lessons I created for you.

Best Tweets

Here are the best tweets I posted since the last newsletter:

Project Releases

The 2.4 version of the amazing Hypersistence Optimizer has been released and brings you lots of performance tuning tips to help you speed up your JPA and Hibernate application. If you want to forget about data access performance issues when using Spring Boot and JPA, then Hypersistence Optimizer is the tool you’ve always wanted to have.

And, if you are want to store JSON, ARRAY, Ranges, IP addresses, and many other DB-specific types that are not supported by Hibernate, then you might want to check out the 2.12 release of the Hibernate Types project.

Hibernate ORM released two versions since the last newsletter episode:

The PostgreSQL JDBC Driver released two new versions:

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.