Search code examples
javajpadistinct

How does DISTINCT work when using JPA and Hibernate


What column does DISTINCT work with in JPA and is it possible to change it?

Here's an example JPA query using DISTINCT:

select DISTINCT c from Customer c

Which doesn't make a lot of sense - what column is the distinct based on? Is it specified on the Entity as an annotation because I couldn't find one?

I would like to specify the column to make the distinction on, something like:

select DISTINCT(c.name) c from Customer c

I'm using MySQL and Hibernate.


Solution

  • Update: See the top-voted answer please.

    My own is currently obsolete. Only kept here for historical reasons.


    Distinct in HQL is usually needed in Joins and not in simple examples like your own.

    See also How do you create a Distinct query in HQL