Maintenance and feature release on top of 4.0.0 (Java 17 / Spring Boot 4.0 / Spring Framework 7.0).
Highlights
- Enum binding & mapping — enums are bound and read by
Enum.name()across all parameter and result paths (#41). forStream()overloads returningStream— new overloads return theStreamdirectly, alongside the existing callback-based ones (#24). The returnedStreamis not auto-closed; close it yourself (e.g. with try-with-resources).java.time.Instantsupport —Instantcolumn values are bound and read via the epoch (Timestamp.from/Timestamp.toInstant), independent of the configured time zone (#19).- Proper SQL types for positional & batch parameters — positional and batch parameters now derive the SQL type from the value's runtime type, consistent with map/bean parameters (#14). (A positional
NULLstill carries no type; see the README batch section.) - Non-public
recordsupport inRecordMapper.
Fixes
- Bump the PostgreSQL driver to 42.7.13, resolving the high-severity SCRAM authentication CPU-exhaustion DoS (CVE-2026-42198).
Compatibility
- Requires Java 17+ and Spring Boot 4.0+ / Spring Framework 7.0+.
- For Java 8 or Spring Boot 2.x–3.x, use the
2.xbranch (latest2.1.0).
Maven
<dependency>
<groupId>ninja.cero.bootiful-sqltemplate</groupId>
<artifactId>bootiful-sqltemplate</artifactId>
<version>4.0.1</version>
</dependency>Full Changelog: 4.0.0...4.0.1