2012-05-18 2 views
34

최대 절전 모드를 사용하여 전체 개체 대신 단일 열을 선택하고 싶습니다. 지금까지 나는 이것을 가지고있다 :Hibernate를 사용하여 어떻게 컬럼을 선택합니까?

List<String> firstname = null; 

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

위의 코드는 전체 "People"테이블을 "firstname"대신 객체로 반환한다. 전체 개체 대신 "firstname"반환 방법을 지정하는 방법을 모르겠습니다.

답변

7

도움이 될 것입니다 희망이 할 수있는 방법은 다음과 같습니다

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

당신이 조건을 원하는 경우 ProjectionList을 사용할 수 있습니다 기본 투영 예 :

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

    ........ 

    criteria.setProjection(prjection); 
관련 문제