2010-07-20 14 views
6

Ich frage mich, was ist der beste Weg, um Map-Array von Hibernate-Abfrage zu bekommen. Google sagt query.list() zu iterieren und Objekte in ein leeres Map-Array zu legen.
Ich denke, es wäre eine elegante und effiziente Möglichkeit, dies zu tun. Könnte mir jemand eine Idee geben?Wie bekomme ich java.util.Map von Hibernate-Abfrage?

+0

Was wären die Schlüssel und was wären die Werte dieser Map? Jeder Versuch, diese Frage zu beantworten, würde eine Menge mehr Informationen darüber erfordern, was Sie gerne hätten. –

+0

mögliches Duplikat von [Kann Hibernate eine Sammlung von Ergebnisobjekten zurückgeben, anders als eine Liste?] (Http://stackoverflow.com/questions/416970/can-hibernate-return-a-collection-of-result-objects-other- Than-a-list) –

Antwort

5

Siehe Hibernate Documentation - 15.6. The select clause:

Sie Aliase ausgewählte Ausdrücke zuweisen können unter Verwendung als:

select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n 
from Cat cat 

Dies ist besonders nützlich, wenn sie zusammen mit ausgewählten neuen Karte verwendet:

select new map(max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n) 
from Cat cat 

Diese Abfrage liefert a Map von Aliasen zu ausgewählten Werten.

+2

Wenn Sie den hql mit createQuery.list ausführen, wird nur eine Liste zurückgegeben. Jedes Element der Liste ist eine Karte mit einem Schlüssel und einem Wert. Es gibt also keine Karte zurück, es wird eine Liste von Karten zurückgegeben ... Ich vermisse etwas ... – hba

Verwandte Themen