programing

최대 절전 모드를 사용하여 열을 선택하는 방법은 무엇입니까?

starjava 2023. 10. 9. 21:17
반응형

최대 절전 모드를 사용하여 열을 선택하는 방법은 무엇입니까?

Hibernate를 사용하여 전체 객체가 아닌 하나의 열을 선택하고자 합니다.지금까지 이것을 가지고 있습니다.

 List<String> firstname = null;

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

제 문제는 위 코드가 단지 "이름"이 아닌 전체 피플 테이블을 객체로 반환한다는 것입니다.전체 개체 대신 "이름"만 반환하도록 지정하는 방법을 잘 모르겠습니다.

Projection은 다음과 같이 설정할 수 있습니다.

.setProjection(Projections.property("firstname"))

이것으로 답례로 이름만 얻을 수 있습니다.

동일한 시나리오로 스택에서 다른 링크를 찾았습니다.이것이 동면 기준을 사용하여 전체 개체 대신 개체의 요소만 반환하는 방법에도 도움이 되기를 바랍니다.

두 개 이상의 열을 쿼리하고 쿼리에서 값을 가져와야 하는 경우 다음과 같은 방법이 있습니다.

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

    ....
}

ProjectionList(프로젝션 리스트)를 사용하면 조건 베이스 프로젝션을 원할 경우 예를 들어

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

    ........

    criteria.setProjection(prjection);

언급URL : https://stackoverflow.com/questions/10652358/how-do-you-select-a-column-using-hibernate

반응형