如何使用hibernate本地sql查询处理空指针异常



我有一个对五列的选择查询,其中一个可能包含值,也可能不包含值,并且由于hibernate的本地sql查询总是返回一个对象,然后需要使用toString()进行转换,因此遇到空指针异常。我怎样才能避免这种情况呢?

下面是代码片段,

   sql="SELECT * FROM (SELECT t.*,ROWNUM r FROM("+sqlQuery+") t)  WHERE r  BETWEEN " + intStartIndex + " AND " + intEndIndex;
    Query query=session.createSQLQuery(sql);  
    ArrayList<Object[]> listResult= query.list();
    return listResult;

 for(int j=0;j<arrColumnMetaData.size();j++){  //  where arrColumnMetaData stores the list returned 
   int k-0;
             Object obj[]=(Object[])arrColumnMetaData.get(j);
              childBeanObj.setNumCaptureCode(obj[k++].toString());
              childBeanObj.setTxtFileName(obj[k++].toString());
              childBeanObj.setTxtFileStatus(obj[k++].toString());
              childBeanObj.setTxtDocumentCode(obj[k++].toString()); 
}

我正在做这样的事情…请告诉这是正确的方法或建议如果你有一个更好的。

    if (obj[k+1] != null){ // check for null, not null then .toString() method
       childBeanObj.setNumCaptureCode(obj[k++].toString());
       childBeanObj.setTxtFileName(obj[k++].toString());
       childBeanObj.setTxtFileStatus(obj[k++].toString());
       childBeanObj.setTxtDocumentCode(obj[k++].toString()); 
    }

最新更新