首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用LSI和mapper查询dynamodb

如何使用LSI和mapper查询dynamodb
EN

Stack Overflow用户
提问于 2016-08-24 09:52:51
回答 1查看 1.5K关注 0票数 1

我目前正在尝试使用LSI和dynamoDB映射器类从发电机DB表中加载信息。假设我有以下代码

Conisder这个类

代码语言:javascript
复制
class Employee {
    @DynamoDBHashKey
    public String getID() {
        return ID;
    }
    @DynamoDBRangeKey
    public String getFirstName() {
        return firstName;
    }

    @DynamoDBIndexRangeKey(localSecondaryIndexName = "my-lsi")
    public String getLastName() {
    return lastName;
    }

    public String getMyotherfield() {
    return myotherfield;
    }
}

考虑使用LSI和dynamoDB映射器检索信息的这段代码

代码语言:javascript
复制
Employee obj = new Employee();
obj.setID("221");
obj.setLastName("SOMEONE");
DynamoDBQueryExpression<Employee> queryExpression = new DynamoDBQueryExpression<>();
queryExpression.setHashKeyValues(obj);
queryExpression.setIndexName("my-lsi");
queryExpression.setProjectionExpression("myotherfield");

PaginatedQueryList<Employee> paginatedQueryList = mapper.query(Employee.class, queryExpression);
Iterator<Employee> iterator = paginatedQueryList.iterator();
while (iterator.hasNext()) {
    Employee pp = iterator.next();
    // some code
}

这是使用mapper查询LSI的正确方法吗?如果不是,那么使用LSI和dynamoDBMapper从表中获取数据的更好方法是什么?(就性能而言)

我也找到了这个https://java.awsblog.com/post/Tx3GYZEVGO924K4/The-DynamoDBMapper-Local-Secondary-Indexes-and-You,但它是2013年的链接。我找不到使用LSI和mapper查询的最新文档。

EN

回答 1

Stack Overflow用户

发布于 2016-08-24 19:42:33

请注意,在您给出的代码中,您根本没有设置范围关键点。使用queryExpression.setRangeKeyConditions()可以做到这一点。

下面是一个代码示例:

代码语言:javascript
复制
Map<String, Condition> rangeKeyConditions = new HashMap<>();
rangeKeyConditions.put("lastName", new Condition()
                 .withComparisonOperator(ComparisonOperator.EQ)
                .withAttributeValueList(new AttributeValue().withS("SOMEONE")));
queryExpression.setRangeKeyConditions(rangeKeyConditions);`

更新

在对象(obj)中设置范围键值(“hashKey”)是不够的(也是不必要的),因为该对象仅用于设置对象。看一下示例here

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39113233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档