【发布时间】:2021-05-14 22:29:26
【问题描述】:
我在实体类Item中有一个复杂对象Test。
@AllArgsConstructor
@Getter
public enum TestStatus {
TO_RUN("To Run"),
RUNNING("Running"),
PASSED("Passed"),
FAILED("Failed");
public static TestStatus fromValue(String value) {
//...implementation
}
private final String value;
}
@Data
@ToString
@Accessors(chain = true)
@DynamoDBFlattened(attributes = {
@DynamoDBAttribute(attributeName = "test.task.id", mappedBy = "id"),
@DynamoDBAttribute(attributeName = "test.task.status", mappedBy = "status")
})
public class TestTask {
private String id;
@DynamoDBTypeConvertedEnum
private TestStatus status;
}
@Data
@ToString
@Accessors(chain = true)
@DynamoDBFlattened(attributes = {
@DynamoDBAttribute(attributeName = "test.suite.name", mappedBy = "name"),
@DynamoDBAttribute(attributeName = "test.suite.version", mappedBy = "version")
})
public class TestSuite {
private String name;
private String version;
}
@Data
@ToString
@Accessors(chain = true)
public class Test {
private TestSuite suite;
private TestTask task;
}
@Data
@ToString
@Accessors(chain = true)
@DynamoDBTable(tableName = "com.example.item")
public class Item {
private String name;
private Test test; // This is a complex object as structure given above.
}
On the call of dynamoDBMapper.save(item); getting exception.
@Repository
@RequiredArgsConstructor
public class DynamoDBItemRepository implements ItemRepository {
//...
@Override
public Item save(Item item) {
dynamoDBMapper.save(item); // Getting DynamoDBMappingException: not supported; requires @DynamoDBTyped or @DynamoDBTypeConverted
return item;
}
//...
}
我遇到了异常
com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: not supported; requires @DynamoDBTyped or @DynamoDBTypeConverted
at com.amazonaws.services.dynamodbv2.datamodeling.StandardModelFactories$Rules$NotSupported.set(StandardModelFactories.java:664) ~[aws-java-sdk-dynamodb-1.11.578.jar:?]
我错过了什么?请帮忙!
【问题讨论】:
-
你能解决吗?
-
不,我必须简化对象。
标签: java spring spring-boot amazon-dynamodb lombok