Tags
Authors
Today—or rather, late last night—we released Hibernate ORM 7, which includes the latest version of Hibernate Data Repositories. We’ve also released Hibernate Validator 9.
-
Hibernate ORM 7 features a complete implementation of Jakarta Persistence 3.2 and of Jakarta Data 1.0.
-
Hibernate Validator 9 implements Jakarta Validation 3.1.
This is the first production-ready version of our platform available entirely under the Apache Software License. (Yes, that includes Envers!) And it’s the first version of our platform to fully support Jakarta EE 11.
Compared to the massive reengineering effort that went into Hibernate 6, this release is much more incremental, and most users should experience a smoother migration. But, as befits a major release, we’ve removed some deprecated functionality. So let’s get the bad news out of the way first.
Hibernate 7.0.0.Final
Hibernate ORM 7.0 Final has just been released.
Details about the release, as well as links to important resources, can be found at https://github.com/hibernate/hibernate-orm/releases/tag/7.0.0
Hibernate 7.0.0.CR2
A second CR for Hibernate ORM 7.0 has just been released. We cleaned up a few APIs and made some improvements to incubating contracts.
Details about the release, as well as links to important resources, can be found at https://github.com/hibernate/hibernate-orm/releases/tag/7.0.0.CR2
Hibernate 7.0.0.CR1
A first (and hopefully last, obviously) CR for Hibernate ORM 7.0 has just been released.
Details about the release, as well as links to important resources, can be found at https://github.com/hibernate/hibernate-orm/releases/tag/7.0.0.CR1
The JPQL select new
syntax originated in the earliest days of Hibernate, providing a way to package a query projection list into a Java object.
This was before Java had generics or record types, so you would use it like this:
The Hibernate team is ecstatic to report that we have successfully relicensed Hibernate ORM under the Apache 2.0 license! As discussed previously, this decision was solely about opening up wider acceptance amongst Apache/Jakarta projects and other places that (for whatever reasons) disallow the LGPL license.
This was a massive effort on the part of many people and took nearly 2 years to complete. We are grateful to all the contributors who explicitly agreed to allow the relicensing of their contributions - thank you!
[ ... ]
The fourth beta release of Hibernate 7 is now available.
Along with many bugfixes and minor improvements, this release features the following enhancements:
-
The brand-new
Restriction
,Path
, andRange
APIs make it easy to add programmatic restrictions to HQL queries or Jakarta Data repository methods in a completely type-safe way. -
The package
org.hibernate.graph
was completely re-engineered, fixing a number of long-standing issues with our implementation of the Jakarta PersistenceEntityGraph
API. -
StatelessSession
is now able to make use of the second-level cache, reflecting the changing role of this very important API in the Hibernate ecosystem. -
Reactive repositories backed by Hibernate Reactive are now a documented feature of Hibernate Data Repositories.
-
The
hibernate-jfr
module was enhanced to send more events to Java Flight Recorder. -
HQL now provides portable
sha()
,md5()
, andhex()
functions. -
Hibernate Processor now features much better support for inner classes.
Last week, Jeroen Borgers asked on Twitter for a standard way to set the JDBC fetch size in JPA, that is, for Hibernate’s Query.setFetchSize()
to be added to the standard APIs.
This took me slightly by surprise, because nobody has ever asked for that before, but I asked him to go ahead and open an issue.
After some discussion, I think I’m satisfied that his actual needs can be met in a different way, but the discussion did help to draw my attention to something important: the default JDBC fetch size for the Oracle driver is 10.
Now, I would never pretend to be an expert in Oracle performance tuning, and I don’t use Oracle every day. Even so, I felt like this is something that I definitely should have known off the top of my head, after so many years working with JDBC.
Out of curiosity, I ran a poll on Twitter, which was shared by Franck Pachot among others:
Release Announcements
As we have continued automating much of our processes, one item that has become increasing more scripted is releases. That automation creates a GitHub release for each release we do.
GitHub exposes an RSS feed for a project’s releases. For Hibernate ORM, that URL is https://github.com/hibernate/hibernate-orm/releases.atom [1].
There are many excellent ways to be notified of releases through this RSS feed, including many email clients. And many people already consume these release announcements using RSS from this site.