Refine search
@Bean public DynamoDBMapper dynamoDBMapper() { return new DynamoDBMapper(dynamoDBClient()); }
/** * Loads an object with the hash key given. * @param hashKey The hash key value. * @return The object. * @see com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper#load */ public T load(H hashKey) { return mapper.<T>load(model.targetType(), hashKey); }
/** * Saves the object given into DynamoDB. * @param object The object to save. * @see com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper#save */ public void save(T object) { mapper.<T>save(object); }
@Override public <T extends Object> T load(Class<T> clazz, Object hashKey, Object rangeKey, DynamoDBMapperConfig config) { config = mergeConfig(config); final DynamoDBMapperTableModel<T> model = getTableModel(clazz, config); T keyObject = model.createKey(hashKey, rangeKey); return load(keyObject, config); }
/** * Deletes the given object from its DynamoDB table. * @param object The object to delete. * @see com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper#delete */ public final void delete(final T object) { mapper.delete(object); }
DynamoDBMapper mapper = new DynamoDBMapper(client); mapper.save(book); Book bookRetrieved = mapper.load(Book.class, 502); bookRetrieved.getDimensions().setThickness("2.0"); mapper.save(bookRetrieved); bookRetrieved = mapper.load(Book.class, 502); System.out.println(bookRetrieved);
/** * Scans through an Amazon DynamoDB table and returns the matching results * as an unmodifiable list of instantiated objects. * @param scanExpression The scan expression. * @return The scan results. * @see com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper#scan */ public PaginatedScanList<T> scan(DynamoDBScanExpression scanExpression) { return mapper.<T>scan(model.targetType(), scanExpression); }
/** * Queries an Amazon DynamoDB table and returns the matching results as an * unmodifiable list of instantiated objects. * @param queryExpression The query expression. * @return The query results. * @see com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper#query */ public PaginatedQueryList<T> query(DynamoDBQueryExpression<T> queryExpression) { return mapper.<T>query(model.targetType(), queryExpression); }
/** * Executes a query after building a DynamoDB specific query based on the * received one */ @Override public Result<K, T> execute(Query<K, T> query) throws GoraException { try { DynamoDBQuery<K, T> dynamoDBQuery = buildDynamoDBQuery(query); DynamoDBMapper mapper = new DynamoDBMapper( dynamoDBStoreHandler.getDynamoDbClient()); List<T> objList = null; if (DynamoDBQuery.getType().equals(DynamoDBQuery.RANGE_QUERY)) objList = mapper.scan(persistentClass, (DynamoDBScanExpression) dynamoDBQuery.getQueryExpression()); if (DynamoDBQuery.getType().equals(DynamoDBQuery.SCAN_QUERY)) objList = mapper.scan(persistentClass, (DynamoDBScanExpression) dynamoDBQuery.getQueryExpression()); return new DynamoDBResult<K, T>(this, query, objList); } catch (Exception e) { throw new GoraException(e); } }
public static void main(String [] args) { AmazonDynamoDBClient client = new AmazonDynamoDBClient(new BasicAWSCredentials("akey1", "skey1")); client.setEndpoint("http://localhost:8000"); DynamoDBMapper mapper = new DynamoDBMapper(client); client.createTable(new CreateTableRequest() .withTableName("nested-data-test") .withAttributeDefinitions(new AttributeDefinition().withAttributeName("desc").withAttributeType("S")) .withKeySchema(new KeySchemaElement().withKeyType("HASH").withAttributeName("desc")) .withProvisionedThroughput(new ProvisionedThroughput().withReadCapacityUnits(1L).withWriteCapacityUnits(1L))); NestedData u = new NestedData(); u.setDesc("else"); Map<String, String> c = new HashMap<String, String>(); c.put("type", "some"); u.setConf(c); mapper.save(u); DynamoDBQueryExpression<NestedData> queryExpression = new DynamoDBQueryExpression<NestedData>(); queryExpression.withHashKeyValues(u); queryExpression.withFilterExpression("conf.#t = :type") .addExpressionAttributeNamesEntry("#t", "type") // returns nothing if use "Type" .addExpressionAttributeValuesEntry(":type", new AttributeValue("some")); for(NestedData u2 : mapper.query(NestedData.class, queryExpression)) { System.out.println(u2.getDesc()); // "else" } }
amazonDynamoDb.setRegion(Region.getRegion(Regions.US_WEST_2)); final DynamoDBMapper dynamoDBMapper = new DynamoDBMapper(amazonDynamoDb); final UserRepository userRepository = new UserRepositoryImpl(dynamoDBMapper);
private static void testBatchDelete(DynamoDBMapper mapper) { Book book1 = mapper.load(Book.class, 901); Book book2 = mapper.load(Book.class, 902); System.out.println("Deleting two books from the ProductCatalog table."); mapper.batchDelete(Arrays.asList(book1, book2)); }
/** * Evaluates the specified scan expression and returns the count of matching * items, without returning any of the actual item data. * @param scanExpression The scan expression. * @return The count. * @see com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper#count */ public int count(DynamoDBScanExpression scanExpression) { return mapper.count(model.targetType(), scanExpression); }
/** * Deletes the given object from its DynamoDB table using the specified * deleteExpression. * @param object The object to delete. * @param deleteExpression The delete expression. * @see com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper#delete */ public final void delete(final T object, final DynamoDBDeleteExpression deleteExpression) { mapper.delete(object, deleteExpression); }
final DynamoDBMapper mapper = new DynamoDBMapper(client); // Using 'PaginatedScanList' final DynamoDBScanExpression paginatedScanListExpression = new DynamoDBScanExpression() .withLimit(limit); final PaginatedScanList<MyClass> paginatedList = mapper.scan(MyClass.class, paginatedScanListExpression); paginatedList.forEach(System.out::println); System.out.println(); // using 'ScanResultPage' final DynamoDBScanExpression scanPageExpression = new DynamoDBScanExpression() .withLimit(limit); do { ScanResultPage<MyClass> scanPage = mapper.scanPage(MyClass.class, scanPageExpression); scanPage.getResults().forEach(System.out::println); System.out.println("LastEvaluatedKey=" + scanPage.getLastEvaluatedKey()); scanPageExpression.setExclusiveStartKey(scanPage.getLastEvaluatedKey()); } while (scanPageExpression.getExclusiveStartKey() != null);
@Test public void testListEnvironmentsEmptyResult() throws Exception { when(environmentDDBRecords.stream()).thenReturn(Stream.empty()); doReturn(environmentDDBRecords) .when(dynamoDBMapper) .query(eq(EnvironmentDDBRecord.class), any()); final List<Environment> result = environmentRepositoryDDB.listEnvironments(cluster, null); verify(dynamoDBMapper).query(eq(EnvironmentDDBRecord.class), any()); verify(environmentMapper, never()).toEnvironment(environmentDDBRecord); assertThat(result.size()).isEqualTo(0); }
@Override public <T extends Object> T load(Class<T> clazz, Object hashKey, Object rangeKey, DynamoDBMapperConfig config) { config = mergeConfig(config); final DynamoDBMapperTableModel<T> model = getTableModel(clazz, config); T keyObject = model.createKey(hashKey, rangeKey); return load(keyObject, config); }
/** * Evaluates the specified query expression and returns the count of matching * items, without returning any of the actual item data * @param queryExpression The query expression. * @return The count. * @see com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper#count */ public int count(DynamoDBQueryExpression<T> queryExpression) { return mapper.<T>count(model.targetType(), queryExpression); }