Three months have passed since the first announcement, and we’re finally ready to release Hibernate Reactive 1.0.
Hibernate Reactive is a reactive API for Hibernate ORM, which supports non-blocking database clients and reactive programming as a paradigm for interacting with the relational database. This release supports the full feature set of JPA, along with almost the whole feature set of Hibernate ORM core, including an impressive array of features for achieving high performance data access.
Hibernate Reactive 1.0 supports the following databases:
Communication with these databases is implemented using non-blocking IO thanks to the Vert.x reactive client libraries.
Hibernate Reactive works well in Vert.x and Quarkus. In particular, it’s a perfect partner for RESTEasy Reactive. In these reactive environments, our performance tests show Hibernate Reactive matching and sometimes outperforming more traditional data access layers which use blocking IO to interact with the database.
Like Hibernate ORM, Hibernate Reactive gives you the choice of writing your data access layer using machine-generated SQL, handwritten SQL, or a mix of both. For users who dislike JPA’s model of stateful persistence contexts, or when this model is an imperfect match to the performance requirements of a particular transaction, Hibernate provides an alternative programming model based on stateless sessions. When it comes time to tune performance, Hibernate Reactive lets you easily take advantage of caching and batching, and provides flexible strategies for tuning association fetching.
Hibernate ORM provides a wealth of features which go beyond the JPA specification, and almost all of these are now supported in Hibernate Reactive. For convenience, we’ve listed some of the most commonly-used mapping annotations.
You can find more information on the Hibernate website.