有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有没有合理的方式来排序DynamoDB表?

我在spring Boot 2.5.4设置中使用spring data dynamodb 5.1.0。我试图让这个示例代码对SongTitle列进行排序,我已经在该列上定义了一个全局二级索引。 这是我的实体对象`公共课改进音乐{

@Id
private ImprovedMusicId improvedMusicId;

public ImprovedMusic() {}

public ImprovedMusic(ImprovedMusicId improvedMusicId) {
    this.improvedMusicId = improvedMusicId;
}

@DynamoDBHashKey(attributeName = "Artist")
public String getArtist() {
    return improvedMusicId != null ? improvedMusicId.getArtist() : null;
}

public void setArtist(String artist) {
    if (improvedMusicId == null) {
        improvedMusicId = new ImprovedMusicId();
    }
    improvedMusicId.setArtist(artist);
}

@DynamoDBIndexRangeKey(attributeName = "SongTitle", globalSecondaryIndexNames={"GSISongTitle"})
@DynamoDBIndexHashKey(attributeName="SongTitle", globalSecondaryIndexNames = "GSISongTitle")
public String getSongTitle() {
    return improvedMusicId != null ? improvedMusicId.getSongTitle() : null;
}

public void setSongTitle(String songTitle) {
    if (improvedMusicId == null) {
        improvedMusicId = new ImprovedMusicId();
    }
    improvedMusicId.setSongTitle(songTitle);
}

} ` 我在测试中调用了这段代码

`Sort sortBy =  Sort.by("SongTitle").descending;
 Pageable page = PageRequest.of(1,5,sortBy);
 Page aPage = myRepositor.findAll(page);`

请注意,我不想按SongTitle搜索,我希望这个列表按歌曲标题排序。上述测试引发以下异常。我做错什么了吗

The number of conditions on the keys is invalid (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: c0634958-d465-4560-8dce-3e51519b4ed6) com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: The number of conditions on the keys is invalid (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: c0634958-d465-4560-8dce-3e51519b4ed6) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1799) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1


共 (0) 个答案