DynamoDB字符串属性不能有NULL或空字符串。
当您尝试插入NULL,该API应该抛出以下异常: -
java.lang.IllegalArgumentException: Input value must not be null
当您尝试插入空字符串,API应该抛出以下异常: -
com.amazonaws.AmazonServiceException: One or more parameter values were invalid: An AttributeValue may not contain an empty string
如果你想在某些属性上添加额外的过滤器(即散列或范围键以外的属性),你可以使用下面的语法(即withFilterExpression)。
不等于操作符是 “<>”
Map<String, AttributeValue> eav = new HashMap<String, AttributeValue>();
eav.put(":val1", new AttributeValue().withS("Some value"));
DynamoDBQueryExpression<XXX> queryExpression = new DynamoDBQueryExpression<XXX>();
queryExpression.withHashKeyValues(hashKeyValues);
queryExpression.withFilterExpression("docType <> :val1").withExpressionAttributeValues(eav);
你是什么意思时,你说GSI空做?属性或散列/范围键? –
我的意思是属性的值不能为空。 – gman
您能否提供样本数据?我想检查您的意思是否存在GSI属性,并且没有任何值以及它如何存储在DynamoDB表中? – notionquest