JDBI v3.3.0 Release Notes
-
- ๐ New API
- SerializableTransactionRunner.setOnFailure(), setOnSuccess() methods allow callbacks to be registered to observe transaction success and failure.
- JdbiRule.migrateWithFlyway() chaining method to run Flyway migrations on the test database prior to running tests.
- @UseStringSubstitutorTemplateEngine SQL object annotation.
- @Beta annotation to identify non-final APIs.
- Application developers are invited to try out beta APIs and provide feedback to help us identify weaknesses and make improvements before new APIs are made final.
- Library maintainers are discouraged from using beta APIs, as this might lead to ClassNotFoundExceptions or NoSuchMethodExceptions at runtime whenever beta APIs change.
- ๐ Improvements
- Added some extra javadoc to SqlLogger
- @UseTemplateEngine now works with MessageFormatTemplateEngine and StringSubstitutorTemplateEngine
- ๐ Bug fixes
- SqlStatement.bindMethods() (and @BindMethods) now selects the correct method when the method return type is generic.
- mapToMap() no longer throws an exception on empty resultsets when ResultProducers.allowNoResults is true
- ๐ฅ Breaking changes
- Remove JdbiRule.createJdbi() in favor of createDataSource(). This was necessary to facilitate the migrateWithFlyway() feature above, and pave the way for future additions.
- Remove SqlLogger.wrap() added in 3.2.0 from public API.
- Convert MessageFormatTemplateEngine from an enum to a plain class with a public constructor. The INSTANCE enum constant has been likewise removed.
- Remove StringSubstitutorTemplateEngine.defaults(), .withCustomizer() factory methods, in favor of the corresponding public constructors.
- ๐ New API