2012-05-18 22 views
34

Hazırda bekletme modunu kullanarak tüm nesne yerine tek bir sütun seçmek istiyorum. Şimdiye kadar bu var:Hazırda bekletme özelliğini kullanarak bir sütunu nasıl seçersiniz?

List<String> firstname = null; 

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

Benim sorunum Yukarıdaki kod yerine "firstname" nin bir nesne olarak bütün insanlar tablo döndürür olmasıdır. Tüm nesne yerine yalnızca "firstname" döndürmek için nasıl belirtileceğinden emin değilim.

cevap

7

yardımcı olacaktır Umut, bunu yapmak için bir yoldur:

.... 
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

Eğer koşul isterseniz ProjectionList kullanabilirsiniz temel izdüşüm , örn.

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

    ........ 

    criteria.setProjection(prjection); 
İlgili konular