2015-10-12 31 views
0

我有一個名爲Content的類和一個名爲VideoContent的子類。DynamoDB並將子類屬性保存在單獨的表中

[DynamoDBTable("Content")] 
public class Content 

[DynamoDBTable("VideoContent")] 
public class VideoContent: Content 

當我保存VideoContent類的實例時,DynamoDB將整個類保存到'VideoContent'表中。我想將Content和VideoContent類的通用屬性寫入「Content」表,並將「VideoContent」類所特有的屬性寫入「VideoContent」表中。可能嗎?

回答

0

可能使用Java SDK,雖然它很hacky。

請看DynamoDBMapperConfig.TableNameResolver,它允許您動態更改映射器將使用的表名稱。

這將給你更多的空間來操縱對象,然後將它們保存到任何表。

現在關於「公共」屬性 - 在我們公司,當我們需要類似的東西時,我們爲所有可以表示所有可能屬性的對象添加了一個「Data」成員,並且通過使用接口,每個子類實現了getter(s)它實際上需要的setter(s)。這使我們能夠「轉換」周圍的對象,並將對象的視圖發送到DynamoDB,以僅更改表的部分視圖。

相關問題