
Fixing Duplicate Data from Hibernate Queries
About this episode
How to Fix Duplicate Data from Hibernate Queries
This problem was the bane of my existence when I first started using Hibernate because I had no idea where the problem was coming from.
If you're executing a query and finding that you have a bunch of duplicate records and haven't a clue why, then you're in the right place.
You see the problem is typically caused by having left joins (or optional joins) in your objects. When you have a base object, like say User and it joins to another table/object in an optional One-to-Many or optional Many-to-Many format, then you may get duplicates.
Consider this scenario… A User objects joins to the LoginHistory object, which keeps track of all the times a particularUser has logged into the system. And let's say our user has logged in many times. You'll have a situation where you have many records in the LoginHistory table.
So what happens when you run a query that joins to the LoginHistory table? Well it will return as many rows as there are entries for that User in the LoginHistory table.
So because of this, Hibernate doesn't massage the data for you, it just returns exactly what it got from the database. The ball is in your court to tell Hibernate what to do with records it has retrieved.
There are two solutions to this problem:
- Declare your joining object as a
Set - Make use of Distinct Root Entity Results Transformer
Get every episode summarized
Each time How to Program with Java Podcast publishes, we email you a written briefing from the transcript — the topics, who appeared, and any specific claims, with the ad reads skipped.
Email me new episodesFree for 3 shows. No card needed.
Hosts & guests
No transcript yet
This episode has not been transcribed. Request it and it moves to the front of the queue.
More episodes
More from How to Program with Java Podcast

I'm Losing Contracts to AI. Here's Why That's Actually Good Newsde
How to Program with Java Podcast

What Happened to the Bootcamp, Why AI Changed Everything, and What's Next
How to Program with Java Podcast

Unlocking Your First Coding Job: The Realities and Solutions
How to Program with Java Podcast

Alex almost quit coding forever while in this Bootcamp
How to Program with Java Podcast