List of usage examples for com.amazonaws.services.dynamodbv2.datamodeling DynamoDBMapper query
@Override
public <T> PaginatedQueryList<T> query(Class<T> clazz, DynamoDBQueryExpression<T> queryExpression)
From source file:com.kirana.dao.OrderDaoImpl.java
@Override public List<Order> getOrderByShopId(long shopId) throws Exception { DynamoDBMapper mapper = new DynamoDBMapper(dbClient); Date startTime = new Date(0L); SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); dateFormatter.setTimeZone(TimeZone.getTimeZone("UTC")); String startTimeStr = dateFormatter.format(startTime); Condition rangeKeyCondition = new Condition().withComparisonOperator(ComparisonOperator.GT.toString()) .withAttributeValueList(new AttributeValue().withS(startTimeStr)); DynamoDBQueryExpression<Order> queryExpression = new DynamoDBQueryExpression<Order>() .withHashKeyValues(new Order(shopId)).withRangeKeyCondition("created_at", rangeKeyCondition); queryExpression.setConsistentRead(false); return mapper.query(Order.class, queryExpression); }
From source file:com.kirana.dao.OrderDaoImpl.java
@Override public List<Order> getOrderBetween(long id, String FromDate, String ToDate) throws Exception { DynamoDBMapper mapper = new DynamoDBMapper(dbClient); Condition rangeKeyCondition = new Condition().withComparisonOperator(ComparisonOperator.BETWEEN.toString()) .withAttributeValueList(new AttributeValue().withS(FromDate), new AttributeValue().withS(ToDate)); DynamoDBQueryExpression<Order> queryExpression = new DynamoDBQueryExpression<Order>() .withHashKeyValues(new Order(id)).withRangeKeyCondition("created_at", rangeKeyCondition); queryExpression.setConsistentRead(false); List<Order> latestReplies = mapper.query(Order.class, queryExpression); return latestReplies; }
From source file:com.kirana.dao.OrderDaoImpl.java
@Override public Order getOrderByCreatedAt(long id, String createdAt) throws Exception { DynamoDBMapper mapper = new DynamoDBMapper(dbClient); log.info("id : " + id + " createdat:" + createdAt); Condition rangeKeyCondition = new Condition().withComparisonOperator(ComparisonOperator.EQ.toString()) .withAttributeValueList(new AttributeValue().withS(createdAt)); DynamoDBQueryExpression<Order> queryExpression = new DynamoDBQueryExpression<Order>() .withHashKeyValues(new Order(id)).withRangeKeyCondition("created_at", rangeKeyCondition); queryExpression.setConsistentRead(false); PaginatedQueryList list = mapper.query(Order.class, queryExpression); if (list != null && !list.isEmpty()) return (Order) list.get(0); else/*from w w w . jav a 2 s.c o m*/ return null; // return mapper.query(Order.class, queryExpression).get(1); // return mapper.load(Order.class,id,createdAt); }
From source file:org.openhab.persistence.dynamodb.internal.DynamoDBPersistenceService.java
License:Open Source License
/** * {@inheritDoc}// ww w . j ava2 s.c o m */ @Override public Iterable<HistoricItem> query(FilterCriteria filter) { logger.debug("got a query"); if (!isProperlyConfigured) { logger.warn("Configuration for dynamodb not yet loaded or broken. Not storing item."); return Collections.emptyList(); } if (!maybeConnectAndCheckConnection()) { logger.warn("DynamoDB not connected. Not storing item."); return Collections.emptyList(); } String itemName = filter.getItemName(); Item item = getItemFromRegistry(itemName); if (item == null) { logger.warn("Could not get item {} from registry!", itemName); return Collections.emptyList(); } Class<? extends DynamoDBItem<?>> dtoClass = AbstractDynamoDBItem.getDynamoItemClass(item.getClass()); String tableName = tableNameResolver.fromClass(dtoClass); DynamoDBMapper mapper = getDBMapper(tableName); logger.debug("item {} (class {}) will be tried to query using dto class {} from table {}", itemName, item.getClass(), dtoClass, tableName); List<HistoricItem> historicItems = new ArrayList<HistoricItem>(); DynamoDBQueryExpression<DynamoDBItem<?>> queryExpression = createQueryExpression(filter); @SuppressWarnings("rawtypes") final PaginatedQueryList<? extends DynamoDBItem> paginatedList; try { paginatedList = mapper.query(dtoClass, queryExpression); } catch (AmazonServiceException e) { logger.error( "DynamoDB query raised unexpected exception: {}. Returning empty collection. " + "Status code 400 (resource not found) might occur if table was just created.", e.getMessage()); return Collections.emptyList(); } for (int itemIndexOnPage = 0; itemIndexOnPage < filter.getPageSize(); itemIndexOnPage++) { int itemIndex = filter.getPageNumber() * filter.getPageSize() + itemIndexOnPage; DynamoDBItem<?> dynamoItem; try { dynamoItem = paginatedList.get(itemIndex); } catch (IndexOutOfBoundsException e) { logger.debug("Index {} is out-of-bounds", itemIndex); break; } if (dynamoItem != null) { HistoricItem historicItem = dynamoItem.asHistoricItem(item); logger.trace("Dynamo item {} converted to historic item: {}", item, historicItem); historicItems.add(historicItem); } } return historicItems; }