Incorrect result size: expected 1, actual 0错误以及解决方法

错误如下:
org.springframework.dao.IncorrectResultSizeDataAccessException: Incorrect result size: expected 1, actual 0

springjavadoc上讲getObject(String, Object[], Class) will return NULL if the result of the query is NUL
这里有0行和nullresult的区别
0
: select salary from user where 1 = 2
null result: select max(salary) from user where 1 = 2
返回就是null
0
行一定抛出IncorrectResultSizeDataAccessException异常
原因如下
ResultSetMetaData rsmd = rs.getMetaData();
int nrOfColumns = rsmd.getColumnCount();
这里返回ResultSet的列数
  if (nrOfColumns != 1) {
   throw new IncorrectResultSizeDataAccessException(
     "Expected single column but found " + nrOfColumns, 1, nrOfColumns);
  }
0
,多于1,就抛异常了
 
最好还是用QueryForList,返回的listsize0,就是0

转载:http://www.xml.org.cn/blog/more.asp?name=hongrui&id=9521

你可能感兴趣的:(Incorrect result size: expected 1, actual 0错误以及解决方法)