Aggregate Roots in Spring Data JDBC: The Delete-Boundary Rule
Spring Data JDBC takes DDD aggregates literally. Here's a one-question rule for drawing aggregate boundaries — and how to avoid N+1 once you have them, verified against the real generated SQL.
5 Jul 2026
·
6 min read
Spring Batch 6, Hands-On: A New Engine, a Real Operator, and Stops That Cross JVMs
A code-forward tour of Spring Batch 6 on Spring Boot 4 and Java 25 — the resourceless repository, the new ChunkOrientedStep engine, Spring Framework 7 retry, the CommandLineJobOperator, and how stop and recover actually work under the hood.
28 Jun 2026
·
9 min read
Flyway on Spring Boot 4 and Java 25: a silent failure, and what it taught me about modular auto-config
Wiring Flyway into a Spring Boot 4.1 / Java 25 app with a Docker-Compose Postgres - including the Boot 4 auto-config modularization gotcha that makes a missing starter look exactly like a missing library.
28 Jun 2026
·
6 min read
Spring MVC Won't Throw ConstraintViolationException (Here's What It Throws Instead)
Three validation mechanisms wear one annotation vocabulary in Spring MVC. Only one hands you a ConstraintViolationException — the rest give you Spring's own web exceptions. Here's the map, with live proof.
14 Jun 2026
·
5 min read