2011-08-09 85 views
3

我用这JPA查询(的EclipseLink):如何获得独特的结果JPA

SELECT e FROM Entity e GROUP BY e.label 

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

我的第二个方法是使用DISTINCT就像我在计数不同值的另一个功能成功地做到了,但我不知道如何应用此得到实体:

SELECT COUNT(DISTINCT e.label) FROM Entity e 
+1

GROU通过是一个聚集函数。如果您有多个具有相同标签的实体对象,您希望返回哪一个对象? – Kal

+0

我很惊讶第一个查询甚至是有效的。您想要选择什么? –

+0

我想选择任何具有相同标签的实体 –

回答

2

Hibernate JP-QL documentation

select distinct e.label from Entity e 

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

+0

我结束了使用这样的查询。然后我运行另一个查询来获取具有特定标签的所有实体。 –

1

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

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