From Hibernate Types to Hypersistence Utils

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Wouldn’t that be just awesome?

Well, Hypersistence Optimizer is that tool! And it works with Spring Boot, Spring Framework, Jakarta EE, Java EE, Quarkus, or Play Framework.

So, enjoy spending your time on the things you love rather than fixing performance issues in your production system on a Saturday night!

Introduction

In this article, I explain why the Hibernate Types became Hypersistence Utils, and how you can migrate your old dependency to Hypersistence Utils 3.0.

Hibernate Types

The Hibernate Types project was first created in September 2017 with the goal of offering various Hibernate Types that were not supported natively, like support for JSON or ARRAY column types.

Over the years, the project evolved and started offering more utilities beyond the core Hibernate Types.

For instance, in 2018, I added support for the CamelCaseToSnakeCaseNamingStrategy.

Then, in 2020, I added support for the ListResultTransformer.

In 2022, I created the HibernateRepository as well as the BaseJpaRepository.

But, the project was still called Hibernate Types.

Another problem was the group id, com.vladmihalcea, which was too tightly coupled to my personal blog.

Hypersistence Utils

For all these reasons, Hibernate Types metamorphosed into Hypersistence Utils.

The GitHub project was renamed to Hypersistence Utils, but GitHub provides redirects for all the old hibernate-types links. The forked projects should also work just fine.

How to migrate to Hypersistence Utils

I’ve just tested how long it take to embrace this backward incompatible change into an existing project, and the answer is 2 minutes, as illustrated by this commit.

There are two steps you have to take.

First, you need to change the Maven or Gradle dependency.

So, instead of:

<dependency>
    <groupId>com.vladmihalcea</groupId>
    <artifactId>hibernate-types-55</artifactId>
    <version>${hibernate-types.version}</version>
</dependency>

You need to use this dependency:

<dependency>
    <groupId>io.hypersistence</groupId>
    <artifactId>hypersistence-utils-hibernate-55</artifactId>
    <version>${hypersistence-utils.version}</version>
</dependency>

Second, in your favorite IDE, you need to change the following package names:

  • From com.vladmihalcea.hibernate to io.hypersistence.utils.hibernate
  • From com.vladmihalcea.spring to io.hypersistence.utils.spring

That’s it!

I'm running an online workshop on the 20-21 and 23-24 of November about High-Performance Java Persistence.

If you enjoyed this article, I bet you are going to love my Book and Video Courses as well.

Conclusion

While I prefer avoiding backward incompatible change, in this case, this change was really needed since the scope of the project has changed significantly.

Having a much broader scope, I’m going to add more data access utilities beyond just Hibernate, so stay tuned for more.

Transactions and Concurrency Control eBook

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.