2012-05-18 20 views
34

Vorrei selezionare una singola colonna invece di un intero oggetto, utilizzando Hibernate. Finora ho questo:Come si seleziona una colonna usando Hibernate?

List<String> firstname = null; 

firstname = getSession().createCriteria(People.class).list(); 

mio problema è che il codice di cui sopra restituisce la tabella di tutto il popolo come un oggetto invece di "cognome". Non sono sicuro di come specificare di restituire solo "firstname" anziché l'intero oggetto.

risposta

7

Se è necessario interrogare 2 o più colonne e ottenere i valori dalla query, questo è il modo per farlo:

.... 
crit.setProjection(Projections.property("firstname")); 
crit.setProjection(Projections.property("lastname")); 

List result = crit.list(); 

... 

for (Iterator it = result.iterator(); it.hasNext();) { 
    Object[] myResult = (Object[]) it.next(); 
    String firstname = (String) myResult[0]; 
    String lastname = (String) myResult[1]; 

    .... 
} 
2

È possibile utilizzare ProjectionList se si desidera condizione proiezione di base es

ProjectionList prjection = Projections.projectionList(); 
if(abc){ 
    prjection.add(Projections.property("firstname")); 
} 
else if(xyz){ 
    prjection.add(Projections.property("lastname")); 
} 

    ........ 

    criteria.setProjection(prjection); 
Problemi correlati