由于命名约定,在使用DynamoDB AWS开发工具包时出现错误[没有哈希键映射] [英] Error while using DynamoDB AWS SDK [No Mapping for Hash Key] because of naming convention

查看:124
本文介绍了由于命名约定,在使用DynamoDB AWS开发工具包时出现错误[没有哈希键映射]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

While using AWS JAva SDK, for defining DynamoDBHashKey we @DynamoDBHashKey annotation.

如果我使用以下注释,则很奇怪

@DynamoDBHashKey 
String Abc

而不是

@DynamoDBHashKey 
String abc




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

this gives me an error, no mapping for HASH key [junit] at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel.hashKey(DynamoDBMapperTableModel.java:119) [junit] at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel$Builder.build(DynamoDBMapperTableModel.java:449) [junit] at com.amazonaws.services.dynamodbv2.datamodeling.StandardModelFactories$StandardTableFactory.getTable(StandardModelFactories.java:104) [junit] at 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)

我不明白为什么变量命名约定会在失败中起作用有想法吗?

I am unable to understand why does variable naming convention plays a role in failure Any Idea?

推荐答案

在这种情况下,自省魔法似乎无效。 使用参数 attributeName 强制属性名称

Introspection magic does not appear to be working in this case. Force the attribute name with the parameter attributeName.

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

    @DynamoDBHashKey(attributeName="Abc")
    public int getAbc() {
        return Abc;
    }
}

这篇关于由于命名约定,在使用DynamoDB AWS开发工具包时出现错误[没有哈希键映射]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆