如何在JPA中获得唯一的结果

3

我正在使用这个JPA-Query(EclipseLink):

SELECT e FROM Entity e GROUP BY e.label

但是我得到的结果包括所有行而不是只有唯一标签。

我的第二种方法是使用DISTINCT,就像我在另一个计算唯一值的函数中成功地使用了它,但我不知道如何将其应用于获取实体:

SELECT COUNT(DISTINCT e.label) FROM Entity e

1
group by是一个聚合函数。如果您有多个标签相同的实体对象,您想要返回哪个? - Kal
我很惊讶第一个查询甚至是有效的。你想选择什么? - JB Nizet
我想选择任何具有相同标签的实体。 - Martin Schlagnitweit
@Martin:你的意思是 select e from Entity e where e.label = 'blah' 吗? - Jeremy
2个回答

2

以下是来自Hibernate JP-QL文档的内容:

select distinct e.label from Entity e

然而,似乎你想要完整的实体,我认为这是不可能的。

我最终使用了这样一个查询。然后,我运行另一个查询来获取所有具有特定标签的实体。 - Martin Schlagnitweit

1
实际上,这是可能的,例如:

    @NamedQuery(name = "WorkingDay.WorkersAtADay", query = "SELECT DISTINCT w.worker FROM WorkingDay w WHERE w.date = :Date"),

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接