2

在使用 AWS JAva SDK 时,为了定义 DynamoDBHashKey,我们使用 @DynamoDBHashKey 注释。

奇怪的是,如果我使用如下注释

@DynamoDBHashKey 
String Abc

代替

@DynamoDBHashKey 
String abc

这给了我一个错误,在 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel.hashKey(DynamoDBMapperTableModel.java:119) [junit] 在 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel 没有映射 HASH 键 [junit] $Builder.build(DynamoDBMapperTableModel.java:449) [junit] 在 com.amazonaws.services.dynamodbv2.datamodeling.StandardModelFactories$StandardTableFactory.getTable(StandardModelFactories.java:104) [junit] 在 com.amazonaws.services.dynamodbv2.datamodeling .DynamoDBMapper.getTableModel(DynamoDBMapper.java:393) [junit] at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.generateCreateTableRequest(DynamoDBMapper.java:2148) [junit] at com.amazonaws.services.dynamodbv2.datamodeling.AbstractDynamoDBMapper .generateCreateTableRequest(AbstractDynamoDBMapper.java:319)

我无法理解为什么变量命名约定在失败中起作用任何想法?

4

1 回答 1

1

在这种情况下,内省魔法似乎不起作用。使用参数强制属性名称attributeName

@DynamoDBTable(tableName="Books")
public static class Book {
    private String Abc;

    @DynamoDBHashKey(attributeName="Abc")
    public int getAbc() {
        return Abc;
    }
}
于 2017-03-15T06:15:11.173 回答