4

我只想使用 DynamoDBMapper 更新项目的特定属性。例如,我有一个带有属性的用户表,即 id、name、address。

@Data
@DynamoDBTable(tableName = "Users")
public class User {

    @DynamoDBHashKey
    @DynamoDBGeneratedUuid(DynamoDBAutoGenerateStrategy.CREATE)
    private String id;

    @DynamoDBAttribute
    private String name;

    @DynamoDBAttribute
    private Address address;

}

我只想更新地址属性而不是其他字段(选择性更新)。

我可以使用 UpdateItemSpec 找到一个示例示例,但找不到 DynamoDBMapper。使用 UpdateItemSpec,我可以使用 withUpdateExpression() 来定义更新表达式。更多细节可以在这里找到。

有什么方法可以实现与DynamoDBMapper相同的效果吗?

4

1 回答 1

7

使用UPDATE_SKIP_NULL_ATTRIBUTESSaveBehavior

更多详细信息:https ://aws.amazon.com/blogs/developer/using-the-savebehavior-configuration-for-the-dynamodbmapper/

将 SaveBehavior 添加到您的save操作中,并保留非idaddress字段:

mapper.save(user, new DynamoDBMapperConfig(SaveBehavior.UPDATE_SKIP_NULL_ATTRIBUTES));
于 2020-03-04T09:35:13.840 回答