我在五列上有一个select查询,其中一列可能包含或不包含值,而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());
}
我正在做这样的事情..请告诉我这是否是正确的方法或建议你是否有更好的方法。
答案 0 :(得分:0)
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());
}