01
答案 0 :(得分:0)
区别在JPQL中,最常用于在执行左外连接时选择不同的对象。
此查询:
SELECT DISTINCT c
FROM Customer c
LEFT JOIN FETCH c.addresses
将在地址集合中选择客户及其所有地址。如果您不在此处使用DISTINCT,则同一客户将为每个地址重复一次。
您也可以使用DISTINCT选择一个列,但它只会返回该列:
List results = em.createQuery("SELECT DISTINCT(c.name) FROM Customer c").getResultList()
通过这种方式,结果List将是具有客户名称的String的集合。