Coffee with Thorben 2020-02-05 – Auditing with Hibernate Envers

Take your skills to the next level!

The Persistence Hub is the place to be for every Java developer. It gives you access to all my premium video courses, 2 monthly Q&A calls, monthly coding challenges, a community of like-minded developers, and regular expert sessions.

Follow me on YouTube to not miss any new videos.

Join the chat on YouTube.

Auditing with Hibernate Envers

In today’s stream, we will talk about another often requested topic: Writing and managing an audit log with Hibernate Envers.

I will show you how to set up Hibernate Envers for your project and how you can use its query APIs to extract information from your log. This can be useful to travel back in time to analyze which data your algorithms used during a previous run or to find out when specific information was changed. I will also show you how you can add custom information to your audit and use it in your queries.

In addition to the stream, you might find this article useful:

Live Online Workshops

If you enjoyed the live stream, you will love my live online workshops. Find out more at

Question of the Week

As I explained in great details in previous posts, DTOs are the most efficient projection for read-only operations. But that’s only the case, if you use a constructor expression or Hibernate’s ResultTransformer to instantiate a DTO object for each result set record. This introduces some limitations when selecting complex data structures:

Select only specific columns from joined tables (Many-to-Many) in Spring Data JPA.

This week’s tutorials


Searching for the required configuration settings to connect Hibernate to a specific relational database is one of the most annoying parts of setting up a new persistence layer. To make that a little easier, I collected and explained the required configuration settings for the 13 most commonly used databases in this week’s post: JDBC Connection and Dialect Configuration in Hibernate.


Hibernate’s ResultTransformers provide a very flexible way to map your query results. They were very popular in Hibernate 4 but got deprecated in Hibernate 5. That caused a lot of confusion among most Hibernate users. With Hibernate 6, we will get them back with an improved and simpler API.

In this week’s video, I tell you all you need to know about this powerful feature and why you shouldn’t be the deprecation warnings in Hibernate 5:

Follow me on YouTube to not miss any new videos.

Related Articles


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.