【问题标题】:Getting DynamoDBMappingException: not supported; requires @DynamoDBTyped or @DynamoDBTypeConverted for multilevel/complex object获取 DynamoDBMappingException:不支持;需要 @DynamoDBTyped 或 @DynamoDBTypeConverted 用于多级/复杂对象
【发布时间】: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


【解决方案1】:

我建议迁移到可以使用复杂对象的AWS SDK for Java 2.0doc

【讨论】:

    猜你喜欢
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 2023-04-06
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多