public boolean deleteAllItems(String tableName) throws DataAccessException { ScanRequest request = new ScanRequest().withTableName(tableName); boolean deleted = false; ScanResult result = ddb.scan(request); for (Map<String, AttributeValue> item : result.getItems()) { Key key = DynamoDBUtil.getIdKey(item); deleteItem(tableName, key); deleted = true; } // keep repeating until we get through all matched items Key lastKeyEvaluated = null; do { lastKeyEvaluated = result.getLastEvaluatedKey(); if (lastKeyEvaluated != null) { request = new ScanRequest(tableName).withExclusiveStartKey(lastKeyEvaluated); result = ddb.scan(request); for (Map<String, AttributeValue> item : result.getItems()) { Key key = DynamoDBUtil.getIdKey(item); deleteItem(tableName, key); deleted = true; } } } while (lastKeyEvaluated != null); return deleted; }