DISTINCT在JPA中使用哪一列,是否可以更改它?

时间:2015-08-13 08:23:49

标签: hibernate jpa jpql

01

1 个答案:

答案 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的集合。