【问题标题】:org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0org.springframework.dao.EmptyResultDataAccessException:结果大小不正确:预期为 1,实际为 0
【发布时间】:2015-04-24 15:31:01
【问题描述】:

我提交复制数据时出现以下错误,这里是代码..

public String deleteExistingRecordWeekWise(String monthOrWeek) throws ApplicationException {

    try {

        setMonthAndArea();

        String[] stringValues = selectedMonthAndYear.split("-");
        int year=Integer.parseInt(stringValues[0]);
        int month=Integer.parseInt(stringValues[1]);

        String timePrd = null;
        String wk = null;


        if(null==timePeriod || timePeriod.isEmpty()){
            timePeriod= new ArrayList <String>();
            timePeriod.add("2");
        }
        if(null==weekWise || weekWise.isEmpty()){
            weekWise= new ArrayList <String>();
            weekWise.add("1");
        }
        if(Integer.parseInt(timePeriod.get(0))==2){
            timePrd="W";
            if(null==weekWiseSelection){
                if(Integer.parseInt(weekWise.get(0))==1){
                    wk="W1";
                }else if(Integer.parseInt(weekWise.get(0))==2){
                    wk="W2";
                }else {
                    wk="W3";
                }
            }else{
                wk=weekWiseSelection;
            }
        }

        ReportsBO.deleteProjectStatusWeekWise(wk,month,year,selectedArea);

    } catch (ApplicationException ex) {
        addActionError(ex.getMessage());
        fetchFields();
        return ERROR;
    }

    if(null!=weekWiseSelection || !weekWiseSelection.equalsIgnoreCase("month")){
        addActionMessage("Existing records are deleted and copied data from previous month.");
    }else{
        addActionMessage("Existing records are deleted and copied data from previous bi weekly.");
    }
    return SUCCESS;

和 DAO 类..

public void deleteProjectStatusWeekWise(String week,int month,int year,String area) throws ApplicationException { int areaId=Integer.parseInt(area);

    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

    try {
        int projId = jdbcTemplate.queryForInt(ProjectStatus.FETCH_PROJECT_STATUS_WEEKWISE,new Object[] {week,month,year,areaId});
        jdbcTemplate.update(ProjectStatus.DELETE_PROJECT_DET_STATUS_MONTH,new Object[] {projId});
        jdbcTemplate.update(ProjectStatus.DELETE_PROJECT_STATUS_WEEKWISE,new Object[] {week,month,year,areaId});
    } catch (Exception e) {
        LOG.error("Exception occurred in dashboard.performance.gmu.dao.ProjectStatusDAO.fetchProjectStatusTypeList(int)",e);
        throw new ApplicationException("Failed to fetch project type list. Please contact System Administrator.");
    }

}

这个错误即将到来,任何人都可以帮助解决这个问题。

}

【问题讨论】:

  • 抛出什么错误?预期的行为是什么?你能给我们展示一个最小的例子吗?
  • org.springframework.dao.EmptyResultDataAccessException:不正确的结果大小:预期为 1,实际为 0,它抛出以下错误

标签: java spring templates jdbc


【解决方案1】:

看起来它可能来自jdbcTemplate.queryForInt(...);。当预期结果至少有一行(或元素)但实际返回零行(或元素)时,将引发EmptyResultDataAccessException。检查以确保 projId 确实存在于数据库中。

【讨论】:

    猜你喜欢
    • 2015-03-13
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    相关资源
    最近更新 更多