Ho una tabella e la struttura si presenta così:DynamoDB: Come usare un filtro di query per verificare le condizioni in un MAP
Quando faccio una domanda, vorrei essere in grado fare un filtro di query sulla mappa dei dati; ma non sono esattamente sicuro su come impostare la query.
Questo è quello che ho finora:
HashMap<String, AttributeValue> map = new HashMap<String, AttributeValue>();
map.put("byUserId", new AttributeValue().withS("vl49uga5ljjcoln65rcaspmg8u"));
queryExpression
.withQueryFilterEntry("data", new Condition()
.withAttributeValueList(new AttributeValue().withM(map))
.withComparisonOperator(ComparisonOperator.CONTAINS));
ma il modo in cui sto costruendo il filtro non è corretto e continuo a correre nel seguente errore:
Exception in thread "main" com.amazonaws.AmazonServiceException: One or more parameter values were invalid: ComparisonOperator CONTAINS is not valid for M AttributeValue type (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: CHIOME68L1HVGO81URD7CIOS6BVV4KQNSO5AEMVJF66Q9ASUAAJG)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1077)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:725)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:3106)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.query(AmazonDynamoDBClient.java:1118)
Allora, qual è un operatore di confronto che dovrei usare (poiché IN è per i tipi di lista), e come faccio a costruire il filtro di query in modo tale da poter specificare un confronto all'interno della MAP.
Grazie!
Grazie per la risposta, ma purtroppo non ha funzionato. :( – ThePedestrian
Potete fornire maggiori dettagli? – bsd
Qual è il risultato finale con la risposta fornita? Errore? Nessun risultato restituito? – bsd