添加Map <Long,String>属性后,DynamoDB异常

问题描述

我正在尝试修改现有的DynamoDB表以添加一列,该列是一个简单的Map ,但是一旦添加该列并尝试对其进行设置,则会出现以下错误

#include <cstdint>
#include <vector>
#include <random>

int main()
{
   std::random_device rd;
   std::uniform_int_distribution<uint32_t> dist(0,0xFFFFFFFFu);
   std::vector<char> data(1000);
   int offset = 0;
   uint32_t bits = 0;
   for (char& d : data)
   {
      if (offset == 0)
         bits = dist(rd);
      d = static_cast<char>(bits & 0xFF);
      bits >>= 8;
      if (++offset >= 4)
         offset = 0;
   }
   return 0;
}

将以下内容添加到表示dynamo对象的类中:

 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: not supported; requires @DynamoDBTyped or @DynamoDBTypeConverted

发电机不是能够处理从Long到String的简单映射吗?我该如何解决

解决方法

DynamoDBMapper将处理地图确定。如果您的地图包含的字段不是基本类型,则需要提供一个转换器。在您的情况下,Long和String是considered primitives,它应该可以正常工作,而无需任何其他注释或转换器。

我的应用程序中有Map<String,BigDecimal>Map<String,String>,它们工作正常。

说实话,我很确定该错误与您在问题中发布的地图无关。我认为您还有另一个问题所在。