2015-06-24 26 views
0

我有一個表,其中包含兩種項目。每個哈希鍵都有一些這兩種類型的項目,並且每個都有一個唯一的範圍鍵。我設計了兩個相應的,正確的Dynamo註釋的Pojos,但是我對查詢有點困惑。據我所知,我給查詢一個POJO類,以查詢,但如果我查詢一個散列鍵給它,例如PojoA爲期望的類,將Dynamo自動只會得到那些PojoA的或將它也試圖投射PojoB的發現從哈希鍵查詢PojoA的?異源Dynamo查詢

+0

這將可能試圖施放。如何將查詢知道區分2?如果將它分成兩個單獨的表格不是一個選項,我會建議採用基於散列鍵名稱和/或二級索引的策略,並根據密鑰簡單地刪除與期望值不匹配的內容。 – Mircea

回答

0

DynamoDB客戶端將嘗試投PojoBs爲PojoAs。理想情況下,表內的記錄應該是相同的類型。

如果你必須在這種情況下使用映射器,您可以考慮使用marshallIntoObject方法。要使用此方法,你會

  1. 使用低級別的客戶端從DynamoDB
  2. 檢查項目加載項屬性,以確定它是POJO類。屬性必須作爲區分標記。
  3. 使用關於該項目的marshallIntoObject方法屬性來建立所需的POJO類的一個實例。