# Hibernate: Distinct per Criteria API



## byte (21. Jan 2008)

Moin,

ich möchte mit Hibernate über ein Criteria ein SELECT DISTINCT machen, aber es will nicht so recht gelingen. Laut folgendem Thread scheints wohl noch nicht so recht implementiert zu sein:

http://forum.hibernate.org/viewtopic.php?t=941669,

(soll natürlich in SQL übersetzt werden und nicht programmatisch gefiltert werden)


Gibts da mittlerweile eine brauchbare Lösung oder muss ich die Anfrage auf HQL  umstellen?


TIA byto


----------



## az (21. Jan 2008)

Hallo,

versuchs mal mit

```
.setProjection(Projections.distinct(Projections.property(propertyName)))
```


----------



## byte (21. Jan 2008)

Das habe ich schon probiert, aber damit bekomme ich nicht meine gemappten Objekte zurück sondern bloß die Werte des Properties, das ich distinct() übergebe. Das steht ja auch in dem von mir verlinkten Thread, dass man dann alle Properties nochmal explizit angeben muss. Das ist nicht sehr komfortabel, dann schreib ich das ganze lieber per HQL. :?


----------



## Mikes222 (2. Jan 2010)

Dieser Thread ist zwas schon etwas älter aber inzwischen scheint es zu funktionieren:


```
ProjectionList proList = Projections.projectionList();
			proList.add(Projections.property("id"));
			proList.add(Projections.property("version"));

			crit.setProjection(Projections.distinct(proList));
```


----------

