Manthan Jamdagni :
I am trying to save a List<CustomObject>
using the @DynamoDBDocument but it gives me a DynamoDBMappingException : could not unconvert attribute.
Here is what my Entity class looks like -
@lombok.Data
@DynamoDBTable(tableName = "carTable")
public class Car {
@DynamoDBHashKey(attributeName = "name")
private carName;
@DynamoDBRangeKey(attributeName = "model")
private carModel;
@DynamoDBAttribute(attributeName = "manufacturers")
private List<Manufacturer> manufacturers;
}
The Manufacturer class looks like -
@lombok.Data
@DynamoDBDocument
public class Manufacturer {
@DynamoDBAttribute
private String manufacturerName;
}
When using this entity and saving the values into the table it saves properly as JSON, but when retrieving it, an exception is thrown -
com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: Car[manufacturers]; could not unconvert attribute
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel.unconvert(DynamoDBMapperTableModel.java:271)
[junit] at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.privateMarshallIntoObject(DynamoDBMapper.java:456)
[junit] at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:422)
[junit] at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:433)
[junit] at com.amazonaws.services.dynamodbv2.datamodeling.AbstractDynamoDBMapper.load(AbstractDynamoDBMapper.java:85)
What am I missing here, do I need to add some sort of TypeConverter or Marshaller here?
Manthan Jamdagni :
A no-args constructer was required to unconvert the attribute, adding @lombok.NoArgsConstructor to the Manufacturer class solved my problem.
Guess you like
Origin http://10.200.1.11:23101/article/api/json?id=465928&siteId=1