Cli*_*ote 3 java amazon-dynamodb
我有一个包含以下索引的表:
我想拥有is_premium的范围/排序键expiresOn,因此我可以例如查询在今天之前或当天到期的所有帐户,并且具有 is_premium = true。
如果我只是查询今天/今天之前到期的所有帐户,但没有 is_premium=true,我将在结果中获得 90% 的表。
但是,如果我尝试在 上设置范围查询is_premium,则在尝试将记录保存到表时会出现以下错误:
com.amazonaws.AmazonServiceException:索引键的类型不匹配(服务:null;状态代码:400;错误代码:ValidationException;请求 ID:null)
在 com.amazonaws.services.dynamodbv2.local.embedded.DDBExceptionMappingInvocationHandler.handleDynamoDBLocalServiceException(DDBExceptionMappingInvocationHandler.java:76) 在 com.amazonaws.services.dynamodbv2.local.embedded.DDBExceptionMappingInvocationHandler.invoke(DDBException. .proxy.$Proxy70.putItem(Unknown Source) at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper$SaveObjectHandler.doPutItem(DynamoDBMapper.java:1270) at com.amazonaws.services.dynamodbv2.datamodeling.DynamouteDBV2.datamodeling.DynamouteDBMapper$SaveObjectHandler.doPutItem(DynamoDBMapper.java:1270) DynamoDBMapper.java:879) 在 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper$SaveObjectHandler.execute(DynamoDBMapper.java:1120) 在 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.save)(6:6DynamoDBMapper.save)在 com。amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.save(DynamoDBMapper.java:758)
我得到这个 dynamoDbMapper.save(order)
如果我删除排序/范围键,一切正常。
任何想法我做错了什么?错误是非常模棱两可的。
dynamodb 中的哈希/范围键不支持布尔字段。(仅支持字符串/数字/二进制)。
您需要将其转换为 STRING 或 NUMBER(或添加新列)。(如果这将是您的范围键,那么它可以是“真”/“假”或 0/1)。如果它是您的哈希键,那么它可能会更复杂。
| 归档时间: |
|
| 查看次数: |
2769 次 |
| 最近记录: |