Maintenance release on top of 4.0.1 (Java 17 / Spring Boot 4.0 / Spring Framework 7.0). Bug fixes for zone-aware date/time binding, plus integration-test and CI hardening.
Fixes
OffsetDateTime/OffsetTimebinding on strict drivers — they are now bound as naiveTIMESTAMP/TIMEmatching the value actually sent, instead ofTIMESTAMP_WITH_TIMEZONE/TIME_WITH_TIMEZONE. This fixes inserts failing on PostgreSQL (Cannot cast an instance of java.sql.Timestamp to type Types.TIMESTAMP_WITH_TIMEZONE); H2 tolerated the mismatch and was unaffected. Only these two offset types change; all other types are untouched.OffsetDateTimeround-trip across DST zones — conversion now takes the offset at the value's own instant (atZoneSameInstant) rather than atInstant.now(), so a value in the opposite DST period from "now" (e.g. inAmerica/New_York) is no longer shifted by an hour.
Testing & internals
- The DB integration suite now runs against H2, MySQL and PostgreSQL (Testcontainers), and CI runs it via
mvn clean verify. - Internal cleanups with no behavioral change: shared
underscoreName()extracted intoNameUtils,JdbcValueUtilsdate/time helpers made private, and removal of dead code / redundant modifiers.
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.2</version>
</dependency>Full Changelog: 4.0.1...4.0.2