В настоящее время я использую загрузку Spring с 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
, но все же я запутался, что как я могу добиться этого с помощью DynamoDBMApper?
Или мне нужно использовать какой-либо класс низкого уровня, такой как DynamoDB или AmazonDynamoDb?