High-Performance Java Persistence Newsletter, Issue 17
Are you struggling with performance issues in your Spring, Jakarta EE, or Java EE application?
Imagine having a tool that could automatically detect performance issues in your JPA and Hibernate data access layer long before pushing a problematic change into production!
With the widespread adoption of AI agents generating code in a heartbeat, having such a tool that can watch your back and prevent performance issues during development, long before they affect production systems, can save your company a lot of money and make you a hero!
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 allowing performance issues to annoy your customers, you are better off preventing those issues using Hypersistence Optimizer and enjoying spending 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
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.autoconfiguration? - Is it possible to update only a subset of attributes on an entity using Spring MVC with JPA?

