2017-01-18 13 views
1

私は以下のメソッドを呼び出してaに値を渡します。Jdbctemplate queryforObject:EmptyResultDataAccessException:不正確な結果のサイズ:expected 1、actual 0

public Sample get(String a) { 
    return jdbcTemplate.queryForObject(SQL, new Object[] { a }, rowMapper); 
} 

でqueryForObject法の下、それは例外をスロー

の実行 "EmptyResultDataAccessException:誤った結果のサイズは:1、 実際0を期待" とオブジェクト配列の値がヌルです。 パブリックT queryForObject(String sql、Object [] args、RowMapper rowMapper)throws DataAccessException { リスト結果=クエリ(sql、args、new RowMapperResultSetExtractor(rowMapper、1)); 戻り値DataAccessUtils.requiredSingleResult(results); }

答えて

0

クエリが結果を返しませんでした。

2種類の溶液:

  • は常に結果
  • のtry/catchのEmptyResultDataAccessExceptionを返し、ちょうど私の最近の経験によって、より多くのを明確にするために適切な行動
1

を選択するクエリを修正 - > "EmptyResultDataAccessException:不正な結果のサイズ:期待値1、実際の0"つまり、SQLクエリの実行結果として1行しか期待していないことを意味し、0ではなく1を超えていません。 SQLクエリの実行結果が1行のみになります。

関連する問題