High-Performance Java Persistence Newsletter, Issue 17
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 talks about a hypothetical new database system that’s, as the author puts it, “embedded, immutable, syncable, and relational”, serving the purpose of building decentralized client-side applications that share data.
If you are using the MySQL JSON column type and need to encrypt some specific JSON attribute values, then this article explains how easily you can achieve this goal using JPA and Hibernate.
If you’re using MySQL 8, then this Percona article explains how you can tune the InnoDB checkpoint process using the innodb_io_capacity_max
and innodb_doublewrite_pages
configuration properties.
Another great article is this one written by Kuba Łopuszański about locking in InnoDB. This is the first part of the series, so I’m looking forward to reading the second part as well.
If you’ve been using MySQL and now need to use PostgreSQL in a different project, then you should read this article which points out some differences between these two very popular relational database systems.
The Hibernate hbm2ddl.auto
tool allows you to generate the database schema from the JPA and Hibernate entity mappings. While you’d normally use a tool like Flyway to manage the schema migrations, it doesn’t mean that the hbm2ddl.auto
tool is not useful. For more details about this topic, check out this article I wrote on my blog.
Java Version Polling Results
This week, I ran a Java version survey on Twitter, and over 4400 participants managed to cast their votes:
What @Java version are you using?
— Vlad Mihalcea (@vlad_mihalcea) September 6, 2020
So, here are the conclusions:
- It looks like Java 6 and 7 are seldom used.
- Java 8 is still hugely popular.
- Java 11 is slowly getting traction.
- The Java 12 to 15 versions are used only marginally.
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:
If I hadn't failed a job interview at Amazon in 2015, I wouldn't have started my own business, focused on helping others get the most out of their DBs.
— Vlad Mihalcea (@vlad_mihalcea) September 3, 2020
Failing an interview is harsh, but it's not an end of the world. It can also be a turning point in your career.
Just because you are a back-end developer, it doesn't mean you cannot come up with a beautiful UI design. pic.twitter.com/cqcdu2eSrU
— Vlad Mihalcea (@vlad_mihalcea) September 8, 2020
The DB is the inevitable destiny of an HTTP request.
— Vlad Mihalcea (@vlad_mihalcea) September 7, 2020
Pro tip: If you want to become a better software developer, you should start answering questions on @StackOverflow.
— Vlad Mihalcea (@vlad_mihalcea) August 31, 2020
Have you ever noticed that chefs always keep their kitchen clean while cooking?
— Vlad Mihalcea (@vlad_mihalcea) September 5, 2020
That's what developers should do with their project code. Keep it clean while developing new features.

Get in touch with my latest articles!
StackOverflow Answers
The following StackOverflow answers have been trending over the past two weeks:
- Optimistic vs. Pessimistic locking
- Mapping PostgreSQL JSON column to a Hibernate entity property
- Why does Hibernate generate a CROSS JOIN for an implicit join of a @ManyToOne association?
- How to temporarily disable the Hibernate entity version checking?
- What are the possible values of the Hibernate
hbm2ddl.auto
configuration? - Is it possible to update only a subset of attributes on an entity using Spring MVC with JPA?