Feature/support auto generated timestamp in nested objects
Motivation and Context
Expected behavior: Using auto generated timestamp extension should work on nested objects too. (previously, they would only work on root level of the records)
Modifications
Fix: The beforeWrite() method for the implementation of the auto generated timestamp extension was updated to iterate over attributes in a recursive way in order to find and set current instant time for annotated attributes within the nested objects.
Testing
Screenshots (if appropriate)
Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
Checklist
- [ ] I have read the CONTRIBUTING document
- [ ] Local run of
mvn installsucceeds - [ ] My code follows the code style of this project
- [ ] My change requires a change to the Javadoc documentation
- [ ] I have updated the Javadoc documentation accordingly
- [ ] I have added tests to cover my changes
- [ ] All new and existing tests passed
- [ ] I have added a changelog entry. Adding a new entry must be accomplished by running the
scripts/new-changescript and following the instructions. Commit the new file created by the script in.changes/next-releasewith your changes. - [ ] My change is to implement 1.11 parity feature and I have updated LaunchChangelog
License
- [ ] I confirm that this pull request can be released under the Apache 2 license
This task should be addressed alongside ticket "Support @DynamoDbUpdateBehavior in nested objects" to ensure correct behavior when @DynamoDbAutoGeneratedTimestampAttribute is used with the @DynamoDbUpdateBehavior(UpdateBehavior.WRITE_IF_NOT_EXISTS) annotation, preventing timestamp fields (e.g., creationDate) from being overwritten on every write operation. These changes should be merged into the master branch once that ticket is completed.
Superseded by https://github.com/aws/aws-sdk-java-v2/pull/6109.