当具有属性子集的对象访问项目时,DynamoDB 返回的对象类型是什么?

阿迪亚

我对 DynamoDB 很陌生。我有这样的疑问:

让我们考虑一个 DDB 表,它的项目具有以下属性:<attr1, attr2, attr3>

现在我有以下 2 个 Java 类:

类1:

package packageName;
import com.amazonaws.services.dynamodbv2.datamodeling.*;

@DynamoDBTable(tableName = class1.TABLE_NAME)
public class class1 {

    public static final String TABLE_NAME = "tableName";
    public static final String ATTR1 = "Attr1";
    public static final String ATTR2 = "Attr2";
    public static final String ATTR3 = "Attr3";

    @DynamoDBHashKey(attributeName = ATTR1)
    private String attr1;

    @DynamoDBRangeKey(attributeName = ATTR2)
    private String attr2;

    @DynamoDBAttribute(attributeName = ATTR3)
    private String attr3;
}

类2:

package packageName;
import com.amazonaws.services.dynamodbv2.datamodeling.*;

@DynamoDBTable(tableName = class2.TABLE_NAME)
public class class1 {

    public static final String TABLE_NAME = "tableName";
    public static final String ATTR1 = "Attr1";
    public static final String ATTR2 = "Attr2";

    @DynamoDBHashKey(attributeName = ATTR1)
    private String attr1;

    @DynamoDBRangeKey(attributeName = ATTR2)
    private String attr2;
}

当我使用这行代码时:

class2 class2Obj = mapper.load(class2Obj.class,attr1Val,attr2Val); // mapper is the DynamoDBMapper object.

映射器会返回一个 class2 的对象吗?

如果没有,是否还有其他方法使用映射器从表中获取项目作为 class2 对象?

PS我没有可用的DDB来检查这个。

迈克·迪内斯库

是的,您可以加载项目属性的子集。

但是有一些限制:要加载一个项目,您需要使用分区键属性和排序键属性(如果表同时具有分区键和排序键)。如果您使用索引,则相同。

其次,虽然您可以加载具有属性子集的项目,但要小心更新。尝试保存以这种方式加载的项目可能会破坏未加载的属性(取决于您的保存方式)

最后,您可以创建本地二级索引 ( LSI ) 或全局二级索引 ( GSI ) 并利用属性投影来优化您的查询。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否有一个茉莉花匹配器来比较对象的属性子集

此对象的动态类型是什么?

匿名类的对象类型是什么

R包是什么类型的对象?

具有属性子集的对象数组克隆

锡迪支持“对象”属性类型的对象是什么?

用CreateODBCDateTime()创建的对象的返回类型是什么?

python中的JSON对象的类型是什么?

这是什么意思?对象类型的索引签名隐式具有“ any”类型。

'_UnwindowedValues'类型的对象没有len()是什么意思?

MyPy:请求对象的类型是什么?

super()返回的超级对象的类型是什么?

传递类型,经过一些条件并返回对象的良好设计模式是什么

熊猫:对象类型的真正含义是什么?

返回一个对象(该对象是原始对象的子集)的函数的类型定义会是什么样子

枚举对象的类型是什么

返回多个对象的cmdlet,它是什么收集类型?[电源外壳]

Python的代码对象是什么类型?

fabricjs对象的所有可能类型是什么?

函数对象的正确参数类型是什么?

Javascript原型是什么类型的对象?

休眠:查询后是什么类型的对象

何时从get返回的对象是什么?

转换为“对象”类型的目的是什么?

PHP 匿名函数是什么类型的对象?

php 中 SQL SELECT 查询的返回类型是什么,是数组、对象还是什么?

让成员函数返回类型成为要返回的实际对象的超类的正确方法是什么?

Solidity中`this`对象的类型是什么

包含对象的多维数组的类型是什么?