В настоящее время я использую Spring boot с DynamoDB и использую DynamoDBMapper для всех операций с БД. Прямо сейчас он сортируется в порядке возрастания на основе ключа сортировки (имя поля id
). Как я могу сортировать в порядке убывания на основе значения ключа сортировки?
Текущий код:
@Override
public PageImpl<Order> getCustomerOrders(Pageable pageable) {
List<Order> orders = new ArrayList<>();
Map<String, AttributeValue> eav = new HashMap<String, AttributeValue>();
DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();
List<String> exp = new ArrayList<>();
// filters
if (!exp.isEmpty())
scanExpression
.withFilterExpression(String.join(" AND ", exp)).withExpressionAttributeValues(eav);
PaginatedScanList<Order> scan = mapper.scan(Order.class, scanExpression);
int start = (int) pageable.getOffset();
int size = scan.size();
int end = (start + pageable.getPageSize()) > size ? size : (start + pageable.getPageSize());
if (start < size)
for (Order o : scan.subList(start, end)) {
orders.add(o);
}
return new PageImpl<Order>(orders, pageable, size);
}
После некоторого поиска в Google я обнаружил, что мне нужно установить ScanIndexForward
как true
, но все же я не понимаю, как я могу добиться этого с помощью DynamoDBBMApper?
Или мне нужно использовать любой низкоуровневый класс, такой как DynamoDB или AmazonDynamoDb?