I’m entirely new to DynamoDB After researching I concluded to use ONE table for app design.
So I have a DynamoDB Table as PK, SK, CONTENT, < MANY OTHER ATTRIBUTES>
.
My model in java looks something like below
@DynamoDBTable(tableName = “my-data")
public class MyData {
@DynamoDBHashKey(attributeName = "pk")
private String partitionKey;
@DynamoDBRangeKey(attributeName = "sk")
private String sortKey;
@DynamoDBAttribute(attributeName = "content")
private String content; //non queried content, I’ll save as JSON
//below are the attributes which I MIGHT want to queries on later maybe be I'll end up creating GSI or LSI
@DynamoDBAttribute(attributeName = "field1")
private String field1;
@DynamoDBAttribute(attributeName = "field2")
private String field2;
@DynamoDBAttribute(attributeName = "field3")
private String field3;
@DynamoDBAttribute(attributeName = "field4")
private String field4;
@DynamoDBAttribute(attributeName = "field5")
private String field5;
@DynamoDBAttribute(attributeName = "field6")
private String field6;
@DynamoDBAttribute(attributeName = "field7")
private String field7;
}
Now what I want is,
I want to have a different class let's call it MySearchableData
having field1 to field7. And then I want to have MySearchableData
inside MyData
like below.
@DynamoDBTable(tableName = “my-data")
public class KaleidoscopeData {
@DynamoDBHashKey(attributeName = "pk")
private String partitionKey;
@DynamoDBRangeKey(attributeName = "sk")
private String sortKey; // ISO 8601 time string
@DynamoDBAttribute(attributeName = "content")
private String content; //non queried JSON content
// ?? what annotation to use here
private MySearchableData mysearchableData;
}
public class MySearchableData{
private String field1;
private String field2;
private String field3;
private String field4;
private String field5;
private String field6;
private String field7;
}
Question is.
What annotation to use so all these fields from MySearchableData
will be treated as attributes in AWS my-data
tables
UPDATE I am unable to find any annotation for nested classes at AWS documentation https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.Annotations.html