Java 如何使用hibernate本机sql查询处理空指针异常?
我在五列上有一个select查询,其中一列可能包含值,也可能不包含值。由于hibernate的原生sql查询总是返回一个对象,然后需要使用toString()进行转换,因此遇到空指针异常。我怎样才能避免这种情况 下面是代码片段Java 如何使用hibernate本机sql查询处理空指针异常?,java,sql,hibernate,spring-mvc,Java,Sql,Hibernate,Spring Mvc,我在五列上有一个select查询,其中一列可能包含值,也可能不包含值。由于hibernate的原生sql查询总是返回一个对象,然后需要使用toString()进行转换,因此遇到空指针异常。我怎样才能避免这种情况 下面是代码片段 sql="SELECT * FROM (SELECT t.*,ROWNUM r FROM("+sqlQuery+") t) WHERE r BETWEEN " + intStartIndex + " AND " + intEndIndex; Query
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());
}
sql=“SELECT*FROM(SELECT t.*,ROWNUM r FROM(“+sqlQuery+”)t),其中r介于“+intStartIndex+”和“+intEndIndex”之间;
Query Query=session.createSQLQuery(sql);
ArrayList listResult=query.list();
返回列表结果;
对于(int j=0;j0)您必须进行一个或多个空检查。您尝试了什么,如何运行查询,查询是什么,为什么您认为会出现空指针异常,stacktrace说什么……您想让我继续吗?@JamesMassey`您想让我继续吗?`-是的,我尝试了这个sqlQuery.list(),然后迭代结果。此处的“sqlQuery”是一个对多个列执行的select查询,其中一个列不包含值,从而导致空指针。我的意思是,发布有关您正在执行的操作、正在使用的操作以及收到的任何错误消息的特定详细信息。没有更多信息,我们无法修复您的问题
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());
}