我有一个对五列的选择查询,其中一个可能包含值,也可能不包含值,并且由于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());
}