Today, we published a new maintenance release of Hibernate ORM 6.1: 6.1.5.Final.

What’s new

This release introduces a few improvements, bug fixes, and a significant set of performance improvements.

Performance

The Red Hat performance team has identified a particular pattern of code which triggers a severe performance penalty on large multi-core servers. Many libraries have been found to be affected, including Hibernate ORM.

While the engineering team’s primary goal will be to try address the JVM issue, tracked as JDK-8180450, we’ve started to include some mitigation patches so that our users won’t have to wait for years.

This work is in early phases and we’re likely to follow up with additional related improvements, but if running on the HotSpot JVM and having multiple cores and using bytecode enhancements you should already experience improved CPU efficiency with this release.

Early tests are extremely promising!

In case you’re interested to learn more, we discuss the problem extensively on Quarkus Insights episode #107.

To figure out if your own code or other libraries are affected, use the Type Pollution Agent.

The patch in Hibernate ORM was tracked as HHH-15616 - more similar goodies are expected in further upcoming releases.

N.B. this issue has been around for 20 years approximately: we’re not facing a regression, I’d rather say it’s an important discovery and coming with terrific good news, assuming you care about the costs of your servers and/or the environment.

Handling of associations on non-primary keys

Gavin himself has been reworking this tricky area, improving both the code and the error message that might be generated in case of user mistakes.

This set of changes potentially addresses a whole set of open issues, we need to still verify how many are resolved.

Virtual synthetic properties for multi-column inverse one-to-ones

Another patch by Gavin addressing multiple issues relating to Many-to-One mappings.

DB2 aliases

Hibernate schema validation now supports table aliases also for DB2, to enable this feature is necessary to set the hibernate.synonyms configuration property to true (see 15585)

Hibernate Gradle Plugin

We have fixed two bugs affecting the Gradle plugin:

  • A bug causing failures when trying to enhance entities has been fixed (see HHH-15597)

  • A bug preventing to execute tasks whose names consist of three or more parts, e.g. compileThreePartNameJava (see HHH-15558)

These fixes are important for Spring Native.

Entity Graph and Inheritance

We have fixed a bug preventing to eager loading an association of a Single Table Inheritance (see HHH-15622)

Conclusion

For additional details, see:

Feedback, issues, ideas?

To get in touch, use the usual channels:


Back to top