Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions _posts/2025-06-26-hibernate7-on-quarkus.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,18 @@ ifdef::env-github,env-browser,env-vscode[:imagesdir: ../assets/images/posts/hibe

=== Introduction
Hibernate is improving at a very fast speed, and so is its integration with Quarkus, as great database access is a key part of the Quarkus experience.
The latest Quarkus 3.24 release upgrades Hibernate to version 7, a major upgrade that implies some breaking changes, and thus will requires paying attention to the https://docs.jboss.org/hibernate/orm/7.0/migration-guide/migration-guide.html[migration guide] when upgrading.
Developers working on Hibernate and Quarkus are constantly collaborating, so here’s a quick peek at what happened over the last few months and at what Quarkus users might expect in the future.
The latest Quarkus 3.24 release upgrades Hibernate to version 7, a major upgrade that implies some breaking changes, and thus will require paying attention to the https://docs.jboss.org/hibernate/orm/7.0/migration-guide/migration-guide.html[migration guide] when upgrading.
Developers working on Hibernate and Quarkus are constantly collaborating, so here’s a quick peek at what happened over the past few months and at what Quarkus users might expect in the future.

=== License and Governance Updates
Both Quarkus and Hibernate are now projects of the https://www.commonhaus.org[Commonhaus Foundation], a non-profit organization dedicated to creating a collaborative environment for open-source libraries.
Since the upgrade to Hibernate 7, Quarkus and all modules of Hibernate now share the same open-source license: the https://www.apache.org/licenses/LICENSE-2.0[Apache License Version 2.0].
Since the upgrade to Hibernate 7, Quarkus and all Hibernate libraries now share the same open-source license: the https://www.apache.org/licenses/LICENSE-2.0[Apache License Version 2.0].

=== Hibernate ORM 7.0 Updates
The new version of Hibernate brings better performance and https://docs.jboss.org/hibernate/orm/7.0/whats-new/whats-new.html[all kinds of new features], some of which improve the developer experience, such as https://docs.jboss.org/hibernate/orm/7.0/whats-new/whats-new.html#session-find-multiple[using `findMultiple()` and `getMultiple()`] to efficiently fetch entities in batches.

==== Support for Jakarta Data
https://jakarta.ee/specifications/data/1.0/jakarta-data-1.0[Jakarta Data] is a simpler way to write data-accessing applications, and it’s been supported in Quarkus since https://in.relation.to/2024/11/04/data-in-quarkus/[November 2024]. We suggest giving it a try, as it enables a very quick and easy implementation of the DAO/repository patterns, without any boilerplate code and in a type-safe manner. Simply include the `jakarta.data:jakarta.data-api` dependency with the latest version of Quarkus, i.e.:
https://jakarta.ee/specifications/data/1.0/jakarta-data-1.0[Jakarta Data] is a simpler way to write data-accessing applications, and it’s been supported in Quarkus since https://in.relation.to/2024/11/04/data-in-quarkus/[November 2024]. We suggest giving it a try, as it enables a very quick and easy implementation of the DAO/repository patterns, without any boilerplate code and in a type-safe manner. To get started, simply include the `jakarta.data:jakarta.data-api` dependency with the latest version of Quarkus, i.e.:

[source,xml]
----
Expand Down Expand Up @@ -58,7 +58,7 @@ In the meantime, you can always refer to the https://quarkus.io/version/main/gui


==== New Restrictions API
After the deprecation of the old Hibernate Criteria API, developers were still missing its simplicity, so the Hibernate team introduced a new https://docs.jboss.org/hibernate/orm/7.0/introduction/html_single/Hibernate_Introduction.html#restrictions-and-ordering[Restriction API] that even has new features, such as the possibility to further restrict an already-written JPQL/HQL query.
After the deprecation of the old Hibernate Criteria API, developers were still missing its simplicity, so the Hibernate team introduced a new https://docs.jboss.org/hibernate/orm/7.0/introduction/html_single/Hibernate_Introduction.html#restrictions-and-ordering[Restrictions API] that even has new features, such as the possibility to further restrict an already-written JPQL/HQL query.

[source,java]
----
Expand Down Expand Up @@ -93,7 +93,7 @@ var books =

=== Hibernate Reactive together with Hibernate ORM

A long-awaited feature is the ability to https://github.com/quarkusio/quarkus/issues/13425[mix Hibernate ORM and Hibernate Reactive extensions] in the same Quarkus application. Without this feature, making the two extensions coexist required workarounds that are now unnecessary as, since Quarkus 3.2.4, it's now possible to mix the two.
A long-awaited feature is the ability to https://github.com/quarkusio/quarkus/issues/13425[mix Hibernate ORM and Hibernate Reactive extensions] in the same Quarkus application. Without this feature, making the two extensions coexist required workarounds that are now unnecessary: since Quarkus 3.24, it's now possible to mix the two.

Hibernate Reactive is a powerful reactive data access abstraction, but its advantages vary per project. Instead of dictating usage, we now enable users to experiment easily with both Hibernate ORM and Reactive. Projects using Hibernate ORM can add the Reactive extension, create reactive resources reusing mapped entities, run tests and benchmarks, and determine if it suits their specific needs and scalability goals. While using both, it’s easier to choose the most suitable approach for different use cases. Another benefit is that it makes it easier to migrate in small steps from one to the other as necessary.

Expand All @@ -105,7 +105,7 @@ The Hibernate Schema Manager is a powerful tool to generate DDL scripts out of J

=== The Future

The teams have many plans for the future of these important projects: the DevUI of Quarkus will be enhanced with improvements to the developer experience, with the possibility of https://github.com/quarkusio/quarkus/issues/39584[executing arbitrary HQL queries] to try out the syntax and experiment with test data and https://github.com/quarkusio/quarkus/issues/43723[generating migration scripts on the fly]
The teams have many plans for the future of these important projects: the DevUI of Quarkus will be enhanced with improvements to the developer experience, with the possibility of https://github.com/quarkusio/quarkus/issues/39584[executing arbitrary HQL queries] to try out the syntax and experiment with test data and https://github.com/quarkusio/quarkus/issues/43723[generating migration scripts on the fly].

image::console.gif[scaledwidth=100%]

Expand Down
Loading