2013-07-31 3 views
1

특정 술어와 일치하는 개수 (*)를 추출하려고합니다. 내가 createSQLQuery 사용할 때마다, 나는 나 자신 단일 ScrollableResults 행 얻기

// skipped code 
Query q = session.createSQLQuery("select count(*) from A where id=1"); 
Scrollable results = q.scroll(); 

while (results.next()) 
{ 
    Object[] row = Object[] results.get(); 
    // Assign it 
    String str = row[0]; 
    //set and persist 
} 

내가 단일 트랜잭션을 통해 UNION을 같은 많은 질문이의 라인을 따라 코드를 작성하는 것을 찾을 수 있습니다. 여기에 하나의 결과를 얻으려면 어떻게해야합니까? 내가 놓친 게 있니?

대신이 방법을 사용할 수 있습니다

답변

1

: 쿼리가 하나 개 이상의 결과를 반환

Object[] row = (Object[]) query.uniqueResult(); 

경우,이 메소드가 예외를 throw합니다

편집 : 그 꼭대기에

, 당신은 할 수 ResultTransformer을 사용하여 Object[]Integer으로 변환하십시오. 그러면 결과 배열을 가져온 다음 첫 번째 항목을 추출 할 필요가 제거됩니다. 자세한 내용은 example을 참조하십시오.

+0

고마워요! 그건 그렇고, 제가 그 물체가 배열되지 않는다고 생각하는 것은 잘못된 것입니까? –