Skip to content

3.0.0

Compare
Choose a tag to compare
@jklingsporn jklingsporn released this 27 Feb 11:24
  • Starting from this version on, vertx-jooq both includes the JDBC
    and the async variant (formerly known as vertx-jooq-async). This
    avoids duplicate code and thus provides better stability.
  • Say good bye callback-API: everybody who has written code that is more complex than a simple HelloWorld application
    hates callback-APIs. That is why I decided to let the classic-module now return Vertx Futures instead of accepting a
    Handler to deal with the result.
  • vertx-jooq-future becomes vertx-jooq-completablefuture: that was more or less a consequence of the decision to let the
    classic API return Futures now.
  • Consistent naming: I decided to prefix any DAO-method that is based on a SELECT with find, followed by One if
    it returns one value, or Many if it is capable to return many values, followed by a condition to define how the value is
    obtained, eg byId. If you are upgrading from a previous version, you will have to run some search and replace sessions in your favorite IDE.
  • DAOs are no longer capable of executing arbitrary SQL. There were two main drivers for this decision: 1. joining the JDBC
    and the async API did not allow it. 2. DAOs are bound to a POJO and should only operate on the POJO's type. With the option to execute any
    SQL one could easily join on POJOs of other types and thus break boundaries. You can still execute type-safe SQL asynchronously
    using one of the QueryExecutors though.
  • Never again call blocking DAO-methods by accident: in previous vertx-jooq versions every VertxDAO extended from jOOQ's DAOImpl class.
    This made it easy to just wrap the blocking variant of a CRUD-operation in a Vertx.executeBlocking block to get the async variant
    of it. The downside however was that the blocking CRUD-operations were still visible in the DAO-API and it was up to the user
    to call the correct (async) method. The blocking variants have been removed from the API - all calls are now asynchronous.
  • All insert (except insertReturningPrimary), update and delete-methods now contain information about the number of affected rows.
    The result is a cleaner, thinner API.
  • Guice finally available for all async APIs.