【问题标题】:How to declare sort key while defining table in Java for DynamoDB如何在 Java 中为 DynamoDB 定义表时声明排序键
【发布时间】:2017-08-01 20:02:02
【问题描述】:

我已经从 aws 控制台在 DynamoDB 中创建了一个表。 在为其编写代码时,我无法找到如何声明与分区键关联的排序键

表:员工 ---------------------------------------------- 部门 ID |分区键 员工 | deptId 的排序键 创建日期时间 |全球二级指数 ----------------------------------------------

类定义:

@DynamoDBTable(tableName = "员工") 公共类员工{ // 我已经创建了 deptId 作为分区键 @DynamoDBHashKey(attributeName = "deptId") 私人字符串部门; // 我创建了 empId 作为 deptId 的排序键(分区键) 私人字符串empId; // 我也想在 empId 上运行搜索查询 @DynamoDBIndexHashKey(attributeName = "empId", globalSecondaryIndexName = "empId-index") @DynamoDBIndexHashKey(attributeName = "creationDateTime", globalSecondaryIndexName = "creationDateTime-index") 私有字符串创建日期时间; }

我的问题是我应该使用什么注释以及在声明 empId 之前如何声明 empId 是 deptId 的排序键(这是一个分区键)

我四处搜索,发现应该使用@DynamoDBIndexRangeKey,但该注释确实将排序键与分区键链接

请帮帮我,在此先感谢

【问题讨论】:

    标签: amazon-dynamodb


    【解决方案1】:

    定义排序键的注解是DynamoDBRangeKey

    @DynamoDBRangeKey
    private String empId;
    

    Range Key Annotation

    【讨论】:

      【解决方案2】:

      如果表具有复合主键(分区键和排序键),则必须在类映射中同时指定 DynamoDBHashKey 和 DynamoDBRangeKey 属性。

      [DynamoDBTable("Reply")]
      public class Reply {
         [DynamoDBHashKey] //PrimaryKey
         public int ThreadId { get; set; }
         [DynamoDBRangeKey] //SortKey
         public string Replenishment { get; set; }
         // Additional properties go here.
      }
      

      【讨论】:

        猜你喜欢
        • 2013-03-13
        • 1970-01-01
        • 2015-01-29
        • 1970-01-01
        • 1970-01-01
        • 2021-12-25
        • 1970-01-01
        • 2018-11-03
        • 2023-03-29
        相关资源
        最近更新 更多