Describe the issue
In a recent update, the boolean Update property ignoreNulls was deprecated in favor of ignoreNullsMode, which takes a strategy. However, I was unable to understand from the documentation what the various options do; it seems to be written from the perspective of someone already familiar with the internals of the framework. In particular, it's not clear to me which values correspond to existing code of ignoreNulls(true) or ignoreNulls(false).
Specific items:
- Mapping instructions for converting existing
ignoreNulls to IgnoreNullsMode values would be helpful, as would a "replaced by" in the Javadoc.
- In
SCALAR_ONLY, the phrasing "if done so" is unclear.
SCALAR_ONLY says that updates to nested attributes are supported but not maps; it's unclear whether this means that a nested Java object is supported (since it would be represented as a map in DynamoDB). Does the SDK distinguish between com.example.MyNestedObject and java.util.Map?
MAPS_ONLY says that updating scalar values is supported—overwriting existing values in the table. But this behavior doesn't seem to relate to nulls, if the user is providing something. Or is this saying that the scalar nulls will overwrite the stored attributes?
DEFAULT says it disables "special handling" but not what the default rules are—does DEFAULT mean that nulls (for an attempted partial update) on the entity object will cause nulls to overwrite the database record? Or does it mean the opposite?
Links
https://sdk.amazonaws.com/java/api/2.28.24/software/amazon/awssdk/enhanced/dynamodb/model/IgnoreNullsMode.html
Describe the issue
In a recent update, the boolean Update property
ignoreNullswas deprecated in favor ofignoreNullsMode, which takes a strategy. However, I was unable to understand from the documentation what the various options do; it seems to be written from the perspective of someone already familiar with the internals of the framework. In particular, it's not clear to me which values correspond to existing code ofignoreNulls(true)orignoreNulls(false).Specific items:
ignoreNullstoIgnoreNullsModevalues would be helpful, as would a "replaced by" in the Javadoc.SCALAR_ONLY, the phrasing "if done so" is unclear.SCALAR_ONLYsays that updates to nested attributes are supported but not maps; it's unclear whether this means that a nested Java object is supported (since it would be represented as a map in DynamoDB). Does the SDK distinguish betweencom.example.MyNestedObjectandjava.util.Map?MAPS_ONLYsays that updating scalar values is supported—overwriting existing values in the table. But this behavior doesn't seem to relate to nulls, if the user is providing something. Or is this saying that the scalar nulls will overwrite the stored attributes?DEFAULTsays it disables "special handling" but not what the default rules are—doesDEFAULTmean that nulls (for an attempted partial update) on the entity object will cause nulls to overwrite the database record? Or does it mean the opposite?Links
https://sdk.amazonaws.com/java/api/2.28.24/software/amazon/awssdk/enhanced/dynamodb/model/IgnoreNullsMode.html