2010-07-20 10 views
6

Mi chiedo quale sia il modo migliore per ottenere l'array di mappe dalla query di ibernazione. Google dice di iterare query.list() e creare/inserire oggetti nell'array di mappe vuoto.
Immagino che ci sarebbe un modo elegante ed efficiente per farlo. Qualcuno potrebbe darmi un'idea?Come ottenere java.util.Map dalla query di ibernazione?

+0

Quali sarebbero le chiavi e quali sarebbero i valori di questa mappa? Qualsiasi tentativo di rispondere a questa domanda richiederebbe molte più informazioni su ciò che ti piacerebbe accadere. –

+0

possibile duplicato di [Can Hibernate restituisce una raccolta di oggetti risultato diversi da un elenco?] (Http://stackoverflow.com/questions/416970/can-hibernate-return-a-collection-of-result-objects-other- than-a-list) –

risposta

5

Vedi Hibernate Documentation - 15.6. The select clause:

È possibile assegnare alias alle espressioni selezionati utilizzando come:

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

Questo è molto utile se usato insieme a selezionare nuova mappa:

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

query è riportata una mappa dagli alias ai valori selezionati.

+2

se si esegue l'hql utilizzando createQuery.list, verrà restituito solo un elenco. Ogni elemento della lista è una mappa con una chiave e un valore. Quindi non sta restituendo una mappa, sta restituendo una lista di mappe ... mi manca qualcosa ... – hba

Problemi correlati