'org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0

i'm this following error when i submit for copying data here is the code..

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;

and DAO class..

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.");
    }

}

this error is coming can anyone help on this to resolve the issue.

}


Solution 1:[1]

It looks like it is probably coming from jdbcTemplate.queryForInt(...);. An EmptyResultDataAccessException is thrown when a result was expected to have at least one row (or element) but zero rows (or elements) were actually returned. Check to make sure the projId actually exists in the database.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Rob Tillie