Hibernate Reactive 5.1.0.Beta1 and Hibernate Reactive 5.0.0.Beta3 are now available.
Both are compatible with Hibernate ORM 8.0.0.Beta4. They differ in the version of the Vert.x SQL client:
-
Hibernate Reactive 5.1.0.Beta1 is compatible with Vert.x SQL client 5.2.2;
-
Hibernate Reactive 5.0.0.Beta3 is compatible with Vert.x SQL client 5.1.10.
You can find what’s new in Hibernate ORM in the Hibernate ORM 8.0.0.Beta4 announcement.
If you need a Hibernate Reactive version compatible with older Hibernate ORM releases or Vert.x releases, you can find a compatibility matrix on the Hibernate website.
What’s new
Both releases contain the same changes, listed below.
A platform (BOM) for Hibernate Reactive
Like Hibernate Reactive 4.5.11, Hibernate Reactive 5.0 and 5.1 publish a platform, org.hibernate.reactive:hibernate-reactive-platform.
It manages the versions of Hibernate Reactive, Hibernate ORM, the Vert.x SQL clients and their dependencies,
using the versions Hibernate Reactive was built and tested with:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hibernate.reactive</groupId>
<artifactId>hibernate-reactive-platform</artifactId>
<version>5.1.0.Beta1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
With Gradle, use implementation platform( 'org.hibernate.reactive:hibernate-reactive-platform:5.1.0.Beta1' ).
See #2475.
Version checks at startup
During bootstrap, Hibernate Reactive now checks that the versions of Hibernate ORM and of the Vert.x SQL client
on the classpath aren’t older than the minimum versions it supports, and fails with a clear message if they are.
This usually happens when another BOM imported first manages an older version.
You can skip the check with hibernate.reactive.skip_version_check=true.
See #1796.
The information Hibernate Reactive logs at startup now uses the category org.hibernate.reactive.info,
the equivalent of org.hibernate.orm.info in Hibernate ORM, so you can hide it by raising the level of that category.
See #4241.
Selected fixes
-
createQuery(TypedQueryReference)andcreateStatement(StatementReference)now work like in Hibernate ORM: they bind the arguments, apply the entity graph, the options and the flush mode, and create named statements the same way (#4303). -
The query cache is now read: before, Hibernate Reactive ran the query again even when the results were cached (#3520).
-
persist()andmerge()now fail when an entity references a transient entity through a non-nullable association, like in Hibernate ORM, instead of failing later at flush time (#4358). -
Upserts of entities mapped to multiple tables, for example with joined inheritance, no longer fail with
HR000084on MySQL and MariaDB (#1766). -
Custom identifier generators now work with the stateless session (#4317).
-
Fixed a race condition during the dialect detection at startup (#4385).
-
Hibernate Reactive checks again that a connection is used on the Vert.x context it was created on. Duplicated contexts of the same root context, like the ones created by Quarkus, are accepted (#2936).
-
Fixed multi-table mutation queries using a persistent id table, the default on CockroachDB (#2414).
-
Fixed schema validation of JSON columns on MariaDB (#3106).
If you are upgrading from Hibernate Reactive 4.x, check the migration guide.
You can find the full list of changes in the release notes of 5.1.0.Beta1 and 5.0.0.Beta3.
How can I get it?
If you are new to Hibernate Reactive, the official documentation is a good place to start.
Feedback, issues, ideas?
To get in touch, you can use the following channels:
-
hibernate-reactive tag on Stackoverflow (usage questions)
-
User forum or the hibernate-user stream on Zulip (usage questions, general feedback)
-
Issue tracker (bug reports, feature requests)
-
Mailing list or the hibernate-reactive-dev stream on Zulip (development-related discussions)