DynamoDB排序不可能吗?

问题描述 投票:0回答:1

我将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);

}

如果您需要更多代码,请回复我。

amazon-web-services spring-data amazon-dynamodb
1个回答
0
投票

首先,如果您尝试基于范围键进行排序,请设置排序键。排序键的注释是@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-

© www.soinside.com 2019 - 2024. All rights reserved.