我只想使用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;
}
我只想更新address属性,而不想更新其他字段(选择性更新)。
我可以通过使用UpdateItemSpec找到一个示例,但无法为DynamoDBMapper找到它。使用UpdateItemSpec,我可以使用withUpdateExpression()来定义update表达式。更多细节可以找到这里。
有没有办法,用DynamoDBMapper实现同样的目标?
发布于 2020-03-04 09:35:13
使用UPDATE_SKIP_NULL_ATTRIBUTES
SaveBehavior
详细信息: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));
https://stackoverflow.com/questions/60508596
复制相似问题