Java 如何解决SpringBatch中的org.springframework.dao.EmptyResultDataAccessException

Java 如何解决SpringBatch中的org.springframework.dao.EmptyResultDataAccessException,java,Java,springframework.dao.EmptyResultDataAccessException尝试从sql server数据库中选择数据时,以下是我编写的代码。有人能建议如何使用查询接口从数据库中选择数据吗 public int getRedempRequestId(RedemptionResponseBean redemptionResponse) throws ParseException { final Timestamp redempIdFromCsv =

springframework.dao.EmptyResultDataAccessException
尝试从sql server数据库中选择数据时,以下是我编写的代码。有人能建议如何使用查询接口从数据库中选择数据吗

public int getRedempRequestId(RedemptionResponseBean redemptionResponse)
        throws ParseException {
    final Timestamp redempIdFromCsv = getRedeemDate(redemptionResponse);
    int participantId = redemptionResponse.getOcpEventMemberId();
    System.out.println(redempIdFromCsv);
    System.out.println(participantId);

    int res = jdbcTemplate.queryForInt("SELECT RR.REDEMPTION_REQUEST_ID "
            + "FROM  dbo.REDEMPTION_REQUEST RR WITH (NOLOCK)"
            + "WHERE RR.SENT_DATE = ? AND "
            + "RR.OEDEF_OCP_EVENT_MEMBER_ID = ? ", new Object[] {
            redempIdFromCsv, participantId });
    System.out.println(res+"-----------");
    return res;
}

有谁能告诉我这里有什么问题吗?

如果您不希望返回任何数据,那么不应该使用
jdbcTemplate.queryForInt(…)
,因为该方法希望它将执行的查询将返回一个整数值。基本上,这就是
EmptyResultDataAccessException
告诉您的;它的Javadoc说:

当预期结果至少有一行(或元素),但实际返回了零行(或元素)时引发数据访问异常


相反,您应该使用
JdbcTemplate
中的
query(…)
方法之一,该方法允许返回零行。

您确定query实际返回任何数据吗?为什么query会出现任何问题,我希望没有符合条件的行?