2

我有一个部门表和一个 GSI,其中“租户”作为哈希键,“dept_name”作为范围键。这两个字段都是字符串类型。我想查询 GSI 以获取在 [工程、销售、设施] 中具有 dept_name 的租户的部门。我如何实现这一目标?

我使用了下面的代码,仍然无法得到结果。

  public List<Dept> getDepartments(String tenant,  List<String> depts) {
        Dept dept = new Dept();
        dept.tenant = tenant;
        DynamoDBQueryExpression<Dept> queryExpression = new DynamoDBQueryExpression<>();
        Condition rangeKeyCondition = new Condition().withComparisonOperator(ComparisonOperator.IN);
        rangeKeyCondition.withAttributeValueList(new AttributeValue().withSS(depts));
        queryExpression.withIndexName("tenant_dept_index").withRangeKeyCondition("dept", rangeKeyCondition);
        queryExpression.withHashKeyValues(dept);
        //For GSI consistent read is always false
        queryExpression.setConsistentRead(false);
        List<Dept> items = mapper.query(Dept.class, queryExpression);
        return items;
      }

谢谢。

4

0 回答 0