List of usage examples for org.springframework.dao EmptyResultDataAccessException EmptyResultDataAccessException
public EmptyResultDataAccessException(String msg, int expectedSize)
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); }