Jdbctemplate queryforObject:EmptyResultDataAccessException:结果大小不正确:预期1,实际0

时间:2017-01-18 12:04:33

标签: spring-jdbc jdbctemplate

我通过将值传递给。

来调用下面的方法
public Sample get(String a) {
    return jdbcTemplate.queryForObject(SQL, new Object[] { a }, rowMapper);
}

执行下面的queryForObject方法时,它会抛出异常

  

“EmptyResultDataAccessException:结果大小不正确:预期1,   实际0“和对象数组值为null。       public T queryForObject(String sql,Object [] args,RowMapper rowMapper)抛出DataAccessException {             list results = query(sql,args,new RowMapperResultSetExtractor(rowMapper,1));             return DataAccessUtils.requiredSingleResult(results);         }

2 个答案:

答案 0 :(得分:3)

您的查询未返回结果。

两种解决方案:

  • 修复您的查询以始终返回结果
  • 尝试/捕获EmptyResultDataAccessException并选择适当的行为

答案 1 :(得分:1)

根据我最近的经验,只是为了澄清更多信息 - >它清楚地提到: " EmptyResultDataAccessException:结果大小不正确:预期1,实际0"这意味着由于您的SQL查询执行,它只需要1行,而不是0且不超过1.因此,请确保执行SQL查询只产生一行。