Update expressions in the extensions are applicable for use cases where you want to do the same thing with an attribute every time that you call the database, such as atomic counters. However, if you need a one-time effect for a single request, then leveraging the extension framework isn’t useful.
Use Case
I need to atomically increment a numeric value in a table column by different amounts on demand, without first reading the current value.
Consider this table:
@Getter
@Setter
@DynamoDbBean
public class Recording {
private String id;
private Long totalRecordingSeconds;
I need to be able to update and increment the value of totalRecordingSeconds with different durations: +30, + 20 ... etc, without reading the current value.
It would be helpful to be able to perform something like:
Describe the feature
Enhance the
UpdateItemEnhancedRequest
to support update expressions. https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.htmlI see this feature is partially implemented: https://aws.amazon.com/blogs/developer/using-atomic-counters-in-the-enhanced-dynamodb-aws-sdk-for-java-2-x-client/
but as it is also stated in the article:
Use Case
I need to atomically increment a numeric value in a table column by different amounts on demand, without first reading the current value.
Consider this table:
I need to be able to update and increment the value of
totalRecordingSeconds
with different durations: +30, + 20 ... etc, without reading the current value.It would be helpful to be able to perform something like:
Proposed Solution
No response
Other Information
No response
Acknowledgements
AWS Java SDK version used
2.21.37
JDK version used
22.0.2
Operating System and version
MacOS Sonoma 14.5