Сортировка DynamoDB невозможна? - PullRequest
0 голосов
/ 18 апреля 2019

Я подключил DynamoDB с помощью Spring-boot.

Обычный findAll () - это работа. Pageable тоже работает.

Но когда я вставляю значение сортировки, это не работа. И я попытался использовать метод findAllByOrderByBn ().

Это информация о моей таблице. Ключ раздела (ключ хеша) - это id. Ключ сортировки (ключ диапазона): bn.

Как мне отсортировать?

@Data
@DynamoDBTable(tableName = "tableName")
public class EntityName implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @DynamoDBHashKey
    @DynamoDBAutoGeneratedKey
    private String id;

    @DynamoDBAttribute private String bn;
    @DynamoDBAttribute private String fr;      // from
    @DynamoDBAttribute private String to;      // to

}



@EnableScan
@EnableScanCount
//public interface RepositoryName extends CrudRepository<EntityName, String> {
public interface EthereumTransactionRepository extends PagingAndSortingRepository<EntityName, String> {

    /* Find */
    Page<EntityName> findAll(Pageable pageable);
    Page<EntityName> findByFrAndToBeforeOrderByBnDesc(String fr, String to, Pageable pageable);

}

Если вам нужно больше кода, ответьте мне.

1 Ответ

0 голосов
/ 20 апреля 2019

Во-первых, если вы пытаетесь отсортировать по ключу диапазона, установите ключ сортировки.Аннотация для ключа сортировки - @DynamoDBRangeKey.Поэтому измените класс на

. Открытый класс EntityName реализует Serializable {

private static final long serialVersionUID = 1L;

@Id
@DynamoDBHashKey
@DynamoDBAutoGeneratedKey
private String id;

@DynamoDBRangeKey private String bn;
@DynamoDBAttribute private String fr;      // from
@DynamoDBAttribute private String to;      // to

. А также, если вы хотите сортировать по возрастанию или убыванию, вы можете обратиться к следующей документации: https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBQueryExpression.html#withScanIndexForward-boolean-

...