使用 Java 中的 DynamoDBMapper 更新特定属性

shw*_*tap 3 amazon-dynamodb aws-sdk amazon-dynamodb-local

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

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

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

    @DynamoDBAttribute
    private String name;

    @DynamoDBAttribute
    private Address address;

}
Run Code Online (Sandbox Code Playgroud)

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

我可以通过使用 UpdateItemSpec 找到一个示例示例,但无法为 DynamoDBMapper 找到它。使用 UpdateItemSpec,我可以使用 withUpdateExpression() 来定义更新表达式。可以在此处找到更多详细信息。

有什么办法可以用DynamoDBMapper实现相同的目标吗?

Hor*_*lea 6

使用UPDATE_SKIP_NULL_ATTRIBUTESSaveBehavior

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

将 SaveBehavior 添加到您的save操作中,并保留id和以外的字段address

mapper.save(user, new DynamoDBMapperConfig(SaveBehavior.UPDATE_SKIP_NULL_ATTRIBUTES));
Run Code Online (Sandbox Code Playgroud)