我有一个部门表和一个 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;
}
谢谢。