2015-06-24 23 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类的一个实例。