Skip to content

Improved explanation for DynamoDB IgnoreNullsMode #5668

Description

@chrylis

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:

  1. Mapping instructions for converting existing ignoreNulls to IgnoreNullsMode values would be helpful, as would a "replaced by" in the Javadoc.
  2. In SCALAR_ONLY, the phrasing "if done so" is unclear.
  3. 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?
  4. 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?
  5. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationThis is a problem with documentation.dynamodb-enhancedp2This is a standard priority issue

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions