Example usage for org.springframework.dao EmptyResultDataAccessException EmptyResultDataAccessException

List of usage examples for org.springframework.dao EmptyResultDataAccessException EmptyResultDataAccessException

Introduction

In this page you can find the example usage for org.springframework.dao EmptyResultDataAccessException EmptyResultDataAccessException.

Prototype

public EmptyResultDataAccessException(String msg, int expectedSize) 

Source Link

Document

Constructor for EmptyResultDataAccessException.

Usage

From source file:org.socialsignin.spring.data.dynamodb.repository.support.SimpleDynamoDBCrudRepository.java

@Override
public void delete(ID id) {

    Assert.notNull(id, "The given id must not be null!");

    T entity = findOne(id);//from   ww  w .  j  av a2 s  . c  o  m
    if (entity == null) {
        throw new EmptyResultDataAccessException(
                String.format("No %s entity with id %s exists!", domainType, id), 1);
    }
    dynamoDBOperations.delete(entity);
}

From source file:com.sinosoft.one.data.jade.statement.SelectQuerier.java

public Object execute(SQLType sqlType, StatementRuntime runtime) {
    String sql = runtime.getSQL();
    Object[] args = runtime.getArgs();
    DataAccess dataAccess = new DataAccessImpl(em);
    List<?> listResult = null;
    Pageable pageable = null;//w  w w  .  j a  va2s  . co  m
    Sort sort = null;
    boolean isPage = false;
    boolean isSort = false;
    Map<String, Object> paramMap = runtime.getParameters();
    for (String key : paramMap.keySet()) {
        if (paramMap.get(key) instanceof Pageable) {
            pageable = (Pageable) paramMap.get(key);
            isPage = true;
        } else if (paramMap.get(key) instanceof Sort) {
            sort = (Sort) paramMap.get(key);
            isSort = true;
        }
    }
    if (isPage && !isSort) {
        if (returnType == Page.class) {
            String countSql = parseCountSql(sql);
            Page<?> page = dataAccess.selectByPage(pageable, sql, countSql, args, rowMapper);
            return page;
        } else {
            try {
                log.error("The return type[" + returnType + "] must be " + Page.class);
                throw new Exception("The return type [\"+returnType+\"] is invalid");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    } else if (!isPage && isSort) {
        return dataAccess.selectBySort(sort, sql, args, rowMapper);
    } else if (isPage && isSort) {
        try {
            log.error("Can not use Params:[" + Pageable.class + " and " + Sort.class + "at the same time.");
            throw new Exception(
                    "Can not use Params:[" + Pageable.class + " and " + Sort.class + "at the same time.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    } else {

        listResult = dataAccess.select(sql, args, rowMapper);
        final int sizeResult = listResult.size();

        //  Result ?
        if (returnType.isAssignableFrom(List.class)) {

            //   List ?
            return listResult;

        } else if (returnType.isArray() && byte[].class != returnType) {
            Object array = Array.newInstance(returnType.getComponentType(), sizeResult);
            if (returnType.getComponentType().isPrimitive()) {
                int len = listResult.size();
                for (int i = 0; i < len; i++) {
                    Array.set(array, i, listResult.get(i));
                }
            } else {
                listResult.toArray((Object[]) array);
            }
            return array;

        } else if (Map.class.isAssignableFrom(returnType)) {
            //   KeyValuePair ??  Map 
            // entry.key?nullHashMap
            Map<Object, Object> map;
            if (returnType.isAssignableFrom(HashMap.class)) {

                map = new HashMap<Object, Object>(listResult.size() * 2);

            } else if (returnType.isAssignableFrom(Hashtable.class)) {

                map = new Hashtable<Object, Object>(listResult.size() * 2);

            } else {

                throw new Error(returnType.toString());
            }
            for (Object obj : listResult) {
                if (obj == null) {
                    continue;
                }

                Map.Entry<?, ?> entry = (Map.Entry<?, ?>) obj;

                if (map.getClass() == Hashtable.class && entry.getKey() == null) {
                    continue;
                }

                map.put(entry.getKey(), entry.getValue());
            }

            return map;

        } else if (returnType.isAssignableFrom(HashSet.class)) {

            //   Set ?
            return new HashSet<Object>(listResult);

        } else {

            if (sizeResult == 1) {
                // ?  Bean?Boolean
                return listResult.get(0);

            } else if (sizeResult == 0) {

                // null
                if (returnType.isPrimitive()) {
                    String msg = "Incorrect result size: expected 1, actual " + sizeResult + ": "
                            + runtime.getMetaData();
                    throw new EmptyResultDataAccessException(msg, 1);
                } else {
                    return null;
                }

            } else {
                // IncorrectResultSizeDataAccessException
                String msg = "Incorrect result size: expected 0 or 1, actual " + sizeResult + ": "
                        + runtime.getMetaData();
                throw new IncorrectResultSizeDataAccessException(msg, 1, sizeResult);
            }
        }
    }
    return listResult;
}

From source file:egovframework.rte.bat.core.item.database.EgovJdbcBatchItemWriter.java

/**
 * DB Write   ? setValues /*from   w  w  w  .jav  a2s . c om*/
 * setValues(item, ps, params, sqlTypes, methodMap) : 
 * setValues(item, ps) :  VO
 */
@SuppressWarnings("unchecked")
public void write(final List<? extends T> items) throws Exception {

    if (!items.isEmpty()) {

        if (logger.isDebugEnabled()) {
            logger.debug("Executing batch with " + items.size() + " items.");
        }

        int[] updateCounts = null;

        updateCounts = (int[]) simpleJdbcTemplate.getJdbcOperations().execute(sql,
                new PreparedStatementCallback() {
                    public Object doInPreparedStatement(PreparedStatement ps)
                            throws SQLException, DataAccessException {
                        // Parameters   item, ps, params, sqlTypes,methodMap  ?  setValues call
                        //  item, ps  ?  setValues call
                        if (usingParameters) {

                            String[] sqlTypes = reflector.getSqlTypeArray(params, items.get(0));
                            try {
                                reflector.generateGetterMethodMap(params, items.get(0));
                            } catch (Exception e) {
                                // generateGetterMethodMap ?  ? 
                                logger.error(e);
                            }
                            Map<String, Method> methodMap = reflector.getMethodMap();

                            for (T item : items) {

                                itemPreparedStatementSetter.setValues(item, ps, params, sqlTypes, methodMap);
                                ps.addBatch();
                            }
                        } else {
                            for (T item : items) {
                                itemPreparedStatementSetter.setValues(item, ps);
                                ps.addBatch();
                            }
                        }
                        return ps.executeBatch();

                    }
                });

        if (assertUpdates) {

            for (int i = 0; i < updateCounts.length; i++) {
                int value = updateCounts[i];
                if (value == 0) {
                    throw new EmptyResultDataAccessException("Item " + i + " of " + updateCounts.length
                            + " did not update any rows: [" + items.get(i) + "]", 1);
                }
            }

        }
    }

}

From source file:com.gzj.tulip.jade.statement.SelectQuerier.java

protected ResultConverter makeResultConveter() {
    ResultConverter converter;/*from w  w w .  ja  v a2s.  c o m*/
    if (List.class == returnType || Collection.class == returnType || Iterable.class == returnType) {
        converter = new ResultConverter() {

            @Override
            public Object convert(StatementRuntime runtime, List<?> listResult) {
                return listResult;
            }

        };
    } else if (ArrayList.class == returnType) {
        converter = new ResultConverter() {

            @Override
            public Object convert(StatementRuntime runtime, List<?> listResult) {
                return new ArrayList(listResult);
            }

        };
    } else if (LinkedList.class == returnType) {
        converter = new ResultConverter() {

            @Override
            public Object convert(StatementRuntime runtime, List<?> listResult) {
                return new LinkedList(listResult);
            }

        };
    } else if (Set.class == returnType || HashSet.class == returnType) {
        converter = new ResultConverter() {

            @Override
            public Object convert(StatementRuntime runtime, List<?> listResult) {
                return new HashSet(listResult);
            }

        };
    } else if (Collection.class.isAssignableFrom(returnType)) {
        converter = new ResultConverter() {

            @Override
            public Object convert(StatementRuntime runtime, List<?> listResult) {
                Collection listToReturn;
                try {
                    listToReturn = (Collection) returnType.newInstance();
                } catch (Exception e) {
                    throw new Error("error to create instance of " + returnType.getName());
                }
                listToReturn.addAll(listResult);
                return listToReturn;
            }

        };
    } else if (Iterator.class == returnType) {
        converter = new ResultConverter() {

            @Override
            public Object convert(StatementRuntime runtime, List<?> listResult) {
                return listResult.iterator();
            }

        };
    } else if (returnType.isArray() && byte[].class != returnType) {
        if (returnType.getComponentType().isPrimitive()) {
            converter = new ResultConverter() {

                @Override
                public Object convert(StatementRuntime runtime, List<?> listResult) {
                    Object array = Array.newInstance(returnType.getComponentType(), listResult.size());
                    int len = listResult.size();
                    for (int i = 0; i < len; i++) {
                        Array.set(array, i, listResult.get(i));
                    }
                    return array;
                }

            };
        } else {
            converter = new ResultConverter() {

                @Override
                public Object convert(StatementRuntime runtime, List<?> listResult) {
                    Object array = Array.newInstance(returnType.getComponentType(), listResult.size());
                    return listResult.toArray((Object[]) array);
                }

            };
        }

    } else if (Map.class == returnType || HashMap.class == returnType) {
        converter = new MapConverter() {
            @Override
            protected Map creatMap(StatementRuntime runtime) {
                return new HashMap();
            }
        };
    } else if (Hashtable.class == returnType) {
        converter = new MapConverter() {
            @Override
            protected Map creatMap(StatementRuntime runtime) {
                return new Hashtable();
            }
        };
    } else if (Map.class.isAssignableFrom(returnType)) {
        converter = new MapConverter() {
            @Override
            protected Map creatMap(StatementRuntime runtime) {
                try {
                    return (Map) returnType.newInstance();
                } catch (Exception e) {
                    throw new Error("error to create instance of " + returnType.getName());
                }
            }
        };
    }
    // 
    else {
        converter = new ResultConverter() {

            @Override
            public Object convert(StatementRuntime runtime, List<?> listResult) {
                final int sizeResult = listResult.size();
                if (sizeResult == 1) {
                    // ?  Bean?Boolean
                    return listResult.get(0);

                } else if (sizeResult == 0) {

                    // null
                    if (returnType.isPrimitive()) {
                        String msg = "Incorrect result size: expected 1, actual " + sizeResult + ": "
                                + runtime.getMetaData();
                        throw new EmptyResultDataAccessException(msg, 1);
                    } else {
                        return null;
                    }

                } else {
                    // IncorrectResultSizeDataAccessException
                    String msg = "Incorrect result size: expected 0 or 1, actual " + sizeResult + ": "
                            + runtime.getMetaData();
                    throw new IncorrectResultSizeDataAccessException(msg, 1, sizeResult);
                }
            }
        };
    }
    return converter;
}

From source file:net.sf.gazpachoquest.services.core.impl.ResearchServiceImpl.java

@Override
@Transactional(readOnly = false)//w  w w .  ja  v a  2  s  .co  m
public void addRespondent(Integer researchId, User respondent) {
    Assert.state(!respondent.isNew(), "Persist respondent before using inside a research.");

    Research research = repository.findOne(researchId);
    Assert.state(research.getType().equals(ResearchAccessType.BY_INVITATION),
            "Tracked participants are not supported in anonymous researches");

    QuestionnaireDefinition questionnaireDefinition = research.getQuestionnaireDefinition();

    Questionnaire questionnaire = Questionnaire.with().status(research.getStatus()).research(research)
            .questionnaireDefinition(questionnaireDefinition).respondent(respondent).build();
    questionnaire = questionnaireRepository.save(questionnaire);

    // Create answers holder
    QuestionnaireAnswers questionnaireAnswers = new QuestionnaireAnswers();
    questionnaireAnswers = questionnaireAnswersRepository
            .save(questionnaire.getQuestionnaireDefinition().getId(), questionnaireAnswers);
    questionnaire.setAnswersId(questionnaireAnswers.getId());

    // Grant permissions over questionnaire to respondent
    QuestionnairePermission permission = QuestionnairePermission.with().addPerm(Perm.READ).addPerm(Perm.UPDATE)
            .user(respondent).target(questionnaire).build();
    questionnairePermissionRepository.save(permission);

    String token = tokenGenerator.generate();
    PersonalInvitation personalInvitation = PersonalInvitation.with().research(research).token(token)
            .status(InvitationStatus.ACTIVE).respondent(respondent).build();
    invitationRepository.save(personalInvitation);

    // Add the respondent to respondents groups
    Group example = Group.with().name("Respondents").build();
    Group respondentsGroup = groupRepository.findOneByExample(example, new SearchParameters())
            .orElseThrow(() -> new EmptyResultDataAccessException(
                    String.format("No %s entity with name %s found!", Group.class, "Respondents"), 1));
    if (groupRepository.isUserInGroup(respondent.getId(), "Respondents") == 0) {
        respondentsGroup.assignUser(respondent);
    }
}

From source file:net.sf.gazpachoquest.services.core.impl.ResearchServiceImpl.java

@Override
@Transactional(readOnly = false)/*from w ww. j av a 2s.com*/
public Research save(Research research, Set<QuestionnaireDefinition> questionnaireDefinitions,
        Set<User> respondents) {
    research = saveOld(research);
    if (ResearchAccessType.BY_INVITATION.equals(research.getType())) {
        for (QuestionnaireDefinition questionnaireDefinition : questionnaireDefinitions) {

            questionnaireDefinition = questionnaireDefinitionRepository
                    .findOne(questionnaireDefinition.getId());

            Map<MailMessageTemplateType, MailMessageTemplate> templates = questionnaireDefinition
                    .getMailTemplates();
            MailMessageTemplate invitationTemplate = templates.get(MailMessageTemplateType.INVITATION);

            Group example = Group.with().name("Respondents").build();
            Group respondentsGroup = groupRepository.findOneByExample(example, new SearchParameters())
                    .orElseThrow(() -> new EmptyResultDataAccessException(
                            String.format("No %s entity with name %s found!", Group.class, "Respondents"), 1));

            for (User respondent : respondents) {
                Assert.state(!respondent.isNew(), "Persist all respondents before starting a research.");
                Questionnaire questionnaire = Questionnaire.with().status(EntityStatus.CONFIRMED)
                        .research(research).questionnaireDefinition(questionnaireDefinition)
                        .respondent(respondent).build();
                questionnaire = questionnaireRepository.save(questionnaire);
                // Create answers holder
                QuestionnaireAnswers questionnaireAnswers = new QuestionnaireAnswers();
                questionnaireAnswers = questionnaireAnswersRepository
                        .save(questionnaire.getQuestionnaireDefinition().getId(), questionnaireAnswers);
                questionnaire.setAnswersId(questionnaireAnswers.getId());

                String token = tokenGenerator.generate();

                respondent = userRepository.findOne(respondent.getId());
                // Grant permissions over questionnaire to respondent
                QuestionnairePermission permission = QuestionnairePermission.with().addPerm(Perm.READ)
                        .addPerm(Perm.UPDATE).user(respondent).target(questionnaire).build();
                questionnairePermissionRepository.save(permission);

                PersonalInvitation personalInvitation = PersonalInvitation.with().research(research)
                        .token(token).status(InvitationStatus.ACTIVE).respondent(respondent).build();
                invitationRepository.save(personalInvitation);

                MailMessage mailMessage = composeMailMessage(invitationTemplate, respondent, token);
                mailMessageRepository.save(mailMessage);

                if (groupRepository.isUserInGroup(respondent.getId(), "Respondents") == 0) {
                    respondentsGroup.assignUser(respondent);
                }
            }
        }
    } else {
        Assert.notEmpty(questionnaireDefinitions, "questionnairDefinitions required");
        Assert.state(questionnaireDefinitions.size() == 1,
                "Only one questionnairDefinitions supported for Open Access researches");
        String token = tokenGenerator.generate();

        AnonymousInvitation anonymousInvitation = AnonymousInvitation.with().research(research).token(token)
                .status(InvitationStatus.ACTIVE).build();
        invitationRepository.save(anonymousInvitation);
    }
    ResearchPermission permission = ResearchPermission.with().addPerm(Perm.READ).addPerm(Perm.UPDATE)
            .addPerm(Perm.DELETE).user(getAuthenticatedUser()).target(research).build();
    researchPermissionRepository.save(permission);
    return research;
}

From source file:com.ethlo.geodata.GeodataServiceImpl.java

@Override
public boolean isInsideAny(List<Long> locations, long location) {
    final GeoLocation loc = findById(location);
    if (loc == null) {
        throw new EmptyResultDataAccessException("No such location found " + location, 1);
    }//from   w w  w .  ja  v  a2 s  .  co  m

    for (Long l : locations) {
        if (l.equals(location) || isLocationInside(location, l)) {
            return true;
        }
    }
    return false;
}

From source file:com.ethlo.geodata.GeodataServiceImpl.java

@Override
public boolean isOutsideAll(List<Long> locations, long location) {
    final GeoLocation loc = findById(location);
    if (loc == null) {
        throw new EmptyResultDataAccessException("No such location found " + location, 1);
    }//from  w ww .  j a  v  a 2 s. c  o  m

    for (long l : locations) {
        if (isLocationInside(l, loc.getId())) {
            return true;
        }
    }
    return false;
}

From source file:com.ethlo.geodata.GeodataServiceImpl.java

@Override
public GeoLocation findbyCoordinate(Coordinates point, int distance) {
    GeoLocation location = findWithin(point, distance);

    // Fall back to nearest match
    if (location == null) {
        final Page<GeoLocationDistance> nearest = findNear(point, distance, new PageRequest(0, 1));
        location = nearest.hasContent() ? nearest.getContent().get(0).getLocation() : null;
    }/*  w w  w  . j  a va 2  s  .c o  m*/

    if (location != null) {
        return location;
    }
    throw new EmptyResultDataAccessException(
            "Cannot find a location for position lat=" + point.getLat() + ", lng=" + point.getLng(), 1);
}

From source file:org.apereo.portal.layout.dlm.RDBMDistributedLayoutStore.java

private IPortletEntity getPortletEntity(String fName, String layoutNodeId, int userId) {
    //Try getting the entity
    final IPortletEntity portletEntity = this.portletEntityDao.getPortletEntity(layoutNodeId, userId);
    if (portletEntity != null) {
        return portletEntity;
    }//  w  w w  .j  a v a2s  .com

    //Load the portlet definition
    final IPortletDefinition portletDefinition;
    try {
        portletDefinition = this.portletDefinitionRegistry.getPortletDefinitionByFname(fName);
    } catch (Exception e) {
        throw new DataRetrievalFailureException(
                "Failed to retrieve ChannelDefinition for fName='" + fName + "'", e);
    }

    //The channel definition for the fName MUST exist for this class to function
    if (portletDefinition == null) {
        throw new EmptyResultDataAccessException("No ChannelDefinition exists for fName='" + fName + "'", 1);
    }

    //create the portlet entity
    final IPortletDefinitionId portletDefinitionId = portletDefinition.getPortletDefinitionId();
    return this.portletEntityDao.createPortletEntity(portletDefinitionId, layoutNodeId, userId);
}