How to improve statement caching efficiency with IN clause parameter padding

Introduction Recently, I stumbled on the following Twitter thread: This jOOQ feature is indeed really useful since it reduces the number of SQL statements that have to be generated when varying the IN clause parameters dynamically. Starting with Hibernate ORM 5.2.18, it’s now possible to use IN clause parameter padding so that you can improve SQL Statement Caching efficiency. In this article, I’m going to explain how this new mechanism works and why you should definitely consider it when using a relational database system that supports Execution Plan caching.

A beginner’s guide to Dirty Read anomaly

Introduction Database transactions are defined by the four properties known as ACID. The Isolation Level (I in ACID) allows you to trade off data integrity for performance. The weaker the isolation level, the more anomalies can occur, and in this article, we are going to describe the Dirty Read phenomenon.

A beginner’s guide to Linearizability

Introduction Linearizability is a lesser-known, yet omnipresent property of a data registry in the context of read and write operations that might happen concurrently. This article aims to explain what linearizability consists of, and why it’s more prevalent that you might have previously thought.

How to synchronize bidirectional entity associations with JPA and Hibernate

Introduction While answering this StackOverflow question, I realized that it’s a good idea to summarize how various bidirectional associations should be synchronized when using JPA and Hibernate. Therefore, in this article, you are going to learn how and also why you should always synchronize both sides of an entity relationship, no matter if it’s @OneToMany, @OneToOne or @ManyToMany.

How to use @PrePersist and @PreUpdate on Embeddable with JPA and Hibernate

Introduction In a previous article, I explained how you could audit entity modifications using the JPA @EntityListeners for embeddable types. Since Hibernate ORM 5.2.17 now allows you to use the @PrePersist and @PreUpdate JPA entity listeners, we can simplify the previous example, as you will see in this article.