Dynamodbmappingexception: No Mapping for Hash Key

When writing a DynamoDB Java App you can receive the 'no mapping for HASH key' error when writing or retrieving from a table if the table and its data model are not configured correctly. The full exception would be similar to:

com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: <YourClassNameHere>; no mapping for HASH key

3 Answers

Make sure that your annotated mapped class's getters are declared public.

1

Two helpful things to check here:

1) For your main setter for your hash key value make sure that the @DynamoDBHashKey notation is correctly set. @DynamoDBAttribute is NOT the correct one to use for your table's main hash key and neither is @DynamoDBIndexHashKey.

2) Make sure that the hash key is defined in the table definition:

        CreateTableRequest createTableRequest = new CreateTableRequest()
                .withTableName("testtable")
                .withKeySchema(
                        new KeySchemaElement("id", KeyType.HASH)
                )
                .withProvisionedThroughput(new ProvisionedThroughput(1L, 1L))
                .withAttributeDefinitions(
                        new AttributeDefinition("id", "S")
                );

        CreateTableResult result = amazonDynamoDB.createTable(createTableRequest);

The above table definition creates a table 'testtable' with a main index or hash key variable titled id and the type is S for string.

Additionally, if you are using inheritance, make sure that you don't have two functions with the same name that override each other. Dynamo will use the top-level getter and this can cause issues.

1

If you are using @Data annotation (lombok.data), Try again after removing it and generate getters and setters for all the Attributes(including the primary_key/partition_key).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Sarah Jenkins

Sarah Jenkins

Senior Technology Editor & AI Specialist

Sarah Jenkins is a veteran tech journalist with over 12 years of experience covering artificial intelligence, mobile innovations, and digital ethics. Her insights have appeared in leading technology publications worldwide.

Share this article
Twitter Facebook Pinterest