How to write EXISTS subqueries with JPA and Hibernate

Introduction In this article, I’m going to show you how to write EXISTS subqueries with JPA and Hibernate. EXISTS subqueries are very useful as they allow you to implement SemiJoins. Unfortunately, many application developers are not aware of SemiJoins, and they end up emulating it using EquiJoins (e.g., INNER JOIN) at the cost of query performance.

The best way to handle time zones in a Java web application

Introduction In this article, I’m going to show you what is the best way to handle time zones when developing a Java web application. I applied all these best practices while developing RevoGain, a web application that allows you to calculate the gains you realized while trading stocks, commodities, or crypto using Revolut.

How to map polymorphic JSON objects with JPA and Hibernate

Introduction In this article, I’m going to show you how you can map polymorphic JSON objects when using JPA and Hibernate. Since Hibernate doesn’t support JSON natively, I’m going to use the Hypersistence Utils library to achieve this goal.

Hibernate Batch Sequence Generator

Introduction In this article, I’m going to introduce the Hibernate Batch Sequence Generator implementation that’s provided by Philippe Marschall to the Hypersistence Utils project

The JPA and Hibernate second-level cache

Introduction In this article, I’m going to explain how the JPA and Hibernate second-level cache mechanism works and why they are very important when it comes to improving the performance of your data access layer.

JPA Bulk Update and Delete with Blaze Persistence

Introduction In this article, I’m going to show you how to write JPA Bulk Update and Delete queries using the amazing Blaze Persistence framework. Blaze Persistence is a JPA framework that allows you to build Criteria queries that are much more powerful than the standard JPA Criteria API. More, it also provides support for Keyset Pagination, which is very useful when having to navigate over large result sets.

Keyset Pagination with JPA and Hibernate

Introduction In this article, I’m going to show you how you can use the SQL Keyset Pagination or Seek Method technique with JPA, Hibernate. As explained in this article, Keyset Pagination can help you navigate large result sets without having to scan the entire database index that’s required for fetching the result set in predefined sorting order.

SQL Seek Method or Keyset Pagination

Introduction In this article, we are going to see what the SQL Seek Method or Keyset Pagination is and why you should consider it when navigating over large results sets. The goal of pagination is to avoid fetching large volumes of data since the UI has a limited viewport that could be used to display data.

Blaze Persistence – The Best Way to Write JPA Criteria Queries

Introduction In this article, I’m going to explain why the Blaze Persistence framework provides the best API to write JPA Criteria queries. Blaze Persistence is a very advanced data access framework maintained by Christian Beikov, who’s also a Hibernate ORM project contributor. I first heard of Blaze Persistence during an interview Christian gave us for the Hibernate forum, and if you are using JPA and Hibernate, you should definitely use Blaze Persistence as well.

Hibernate Physical Naming Strategy

Introduction In this article, I’m going to show you how the Hibernate Physical Naming Strategy works and how you can use it to customize the default mapping between entity attributes and database identifiers.