DynamoDBMapper映射实现接口的复合对象

时间:2016-06-29 05:03:57

标签: java amazon-dynamodb

考虑具有多个实现的接口

Public interface A {}

@DynamoDBDocument
Public class C1 implements A {
    variables…
}
@DynamoDBDocument
Public class C2 implements A {
    variables…
}

@DynamoDBTable
Public class TopLevelClass {
    A obj;   //It can be any implementation C1, C2 ….
    //Getter and setter of A 
}

在dynamoDB中保存C1类型的对象可以正常工作,但我们无法将其反序列化。 Jackson通过向json添加一个@class属性来帮助它找出要实例化的实现,但是DynamoDBMapper不知道并且最终试图实例化一个A的对象,它明显失败,因为它只是一个接口。

我们有办法实现这个目标吗?我们不想使用marshallers,因为它只是将整个对象反序列化为字符串并且违背了DynamoDBDocument类型的目的。

0 个答案:

没有答案