High-Performance Java Persistence Newsletter, Issue 26
Are you struggling with performance issues in your Spring, Jakarta EE, or Java EE application?
What if there were a tool that could automatically detect what caused performance issues in your JPA and Hibernate data access layer?
Wouldn’t it be awesome to have such a tool to watch your application and prevent performance issues during development, long before they affect production systems?
Well, Hypersistence Optimizer is that tool! And it works with Spring Boot, Spring Framework, Jakarta EE, Java EE, Quarkus, Micronaut, or Play Framework.
So, rather than fixing performance issues in your production system on a Saturday night, you are better off using Hypersistence Optimizer to help you prevent those issues so that you can spend your time on the things that you love!
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 shows how you can host an SQLite database on GitHub pages and use it to serve dynamic content to a static generated website.
Knowing how a Clustered Index works is very important when you are using MySQL or SQL Server. For this reason, I wrote this article to help you get a good understanding of this topic.
If you’re using PostgreSQL GIN indexes, then you should definitely read this article, which explains how the gin_pending_list_limit setting works for fastupdate.
Talking of PostgreSQL indexes, you should also read this Percona article about BRIN indexes that can help you speed up queries with a very compact index structure.
If your Java application uses SQL Server, then you should always disable the sendStringParametersAsUnicode. For more details about this topic, check out this article.
If you’re using MySQL and want to speed up JSON queries, then you should add a JSON path expression index. For more info about how you can do that, check out this article.
Best Tweets
Here are the best tweets I posted since the last newsletter:
Firefox on Windows pic.twitter.com/3tSHDwmVkQ
— Vlad Mihalcea (@vlad_mihalcea) April 24, 2021
Developer being asked for an estimate pic.twitter.com/gvG3tErMHw
— Vlad Mihalcea (@vlad_mihalcea) April 16, 2021
Mechanical engineers don't change their tools every 6 months because they are no longer cool.
— Vlad Mihalcea (@vlad_mihalcea) April 28, 2021
So true! pic.twitter.com/r9I0kODj4N
— Vlad Mihalcea (@vlad_mihalcea) April 14, 2021
You can definitely become a self-taught software developer.
— Vlad Mihalcea (@vlad_mihalcea) April 10, 2021
That's exactly what I did.
Project Releases
The Hibernate ORM project released the 5.4.31 version.
And, to support the JPA 3.0 spec, which changes the namespaces from javax to jakarta, the Hibernate 5.5 branch has been created, and the 5.5.0.Alpha1 initial version has been released.
If you’re using MySQL, then you might be interested in the 8.0.24 release, which provides several bug fixes and optimizations.
Get in touch with my latest articles!
StackOverflow Answers
The following StackOverflow answers have been trending over the past two weeks:
- First level cache not working with JPA and Hibernate
- What the difference between
CascadeTypeandFetchType - JPA difference between transaction isolation and entity locking
- How to fix Hibernate
LazyInitializationException– failed to lazily initialize a collection of roles, could not initialize proxy – no Session - How do I add a custom
CHECKconstraint on a MySQL table? - How can I see the SQL execution plan in Oracle?

