Обновите специфицированные атрибуты c с DynamoDBMapper в java - PullRequest
1 голос
/ 03 марта 2020

Я хочу обновить только указанные c атрибуты элемента, используя DynamoDBMapper. Например, у меня есть таблица пользователя с атрибутами, а именно, идентификатор, имя, адрес.

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

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

    @DynamoDBAttribute
    private String name;

    @DynamoDBAttribute
    private Address address;

}

Я хочу обновить только атрибут адреса, а не другие поля (выборочное обновление).

Я могу найти пример примера с помощью UpdateItemSpe c, но не могу найти это для DynamoDBMapper. С UpdateItemSpe c я могу использовать withUpdateExpression () для определения выражения обновления. Более подробную информацию можно найти здесь .

Есть ли способ добиться того же с DynamoDBMapper ?

1 Ответ

1 голос
/ 04 марта 2020

Используйте 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));
...