A beginner's guide to database multitenancy

How to integrate Testcontainers into your multi-database Java project

A lesser-known MySQL JDBC optimization setting - rewriteBatchedStatements

The best way to fix the infamous MultipleBagFetchException with Spring Data JPA

Spring Transaction Best Practices

The best Spring Data JpaRepository

The race condition that led to Flexcoin bankruptcy

Java data access technology survey results - 2022 vs. 2019

9 High-Performance Tips when accessing PostgreSQL from Java!

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

Keyset Pagination with Spring - Vlad Mihalcea

A beginner's guide to custom Spring Data Repositories

9 High-Performance Tips when using MySQL and Java

RevoGain Software Architecture - A boring Java stack that works like a charm

The best way to map JSON with JPA and Hibernate

What is goal of the JPA and Hibernate second-level cache

My 8 year journey of blogging about Java and SQL

Blaze Persistence – the best way to write JPA Criteria queries

9 High-Performance Tips when using Java and PostgreSQL

How to intercept and modify SQL queries with the Hibernate StatementInspector

20 years of Hibernate

The best way to implement a PostgreSQL audit log using triggers

How does the JPA first-level cache work internally in Hibernate

9 High-Performance Tips when using PostgreSQL with JPA and Hibernate

9 High-Performance Tips when using MySQL and Java

A beginner's guide to CDC (Change Data Capture)

Flyway Database Schema Migrations

Read-write and read-only transaction routing with Spring

How to get the SQL string from a JPQL or JPA Criteria API Query

The anatomy of Connection Pooling

More →