Java DynamoDB错误插入映射

Java DynamoDB错误插入映射,java,amazon-dynamodb,Java,Amazon Dynamodb,我在AWS DynamoDB中尝试insert,我得到了insert寄存器,但在Java(Eclipse)中插入时出错,但重复一次,我在DynamoDB我的insert中看到了表 我得到错误-> com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: Aricle[ID_TABLE]: null or empty value for primary key at com.amazonaws.serv

我在AWS DynamoDB中尝试insert,我得到了insert寄存器,但在Java(Eclipse)中插入时出错,但重复一次,我在DynamoDB我的insert中看到了表

我得到错误->

com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: Aricle[ID_TABLE]: null or empty value for primary key
    at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperFieldModel.unconvert(DynamoDBMapperFieldModel.java:171)
    at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper$ValueUpdate.apply(DynamoDBMapper.java:1440)
    at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper$SaveObjectHandler.execute(DynamoDBMapper.java:746)
    at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.save(DynamoDBMapper.java:622)
    at com.amazonaws.services.dynamodbv2.datamodeling.AbstractDynamoDBMapper.save(AbstractDynamoDBMapper.java:113)
    at org.socialsignin.spring.data.dynamodb.core.DynamoDBTemplate.save(DynamoDBTemplate.java:136)
    at org.socialsignin.spring.data.dynamodb.repository.support.SimpleDynamoDBCrudRepository.save(SimpleDynamoDBCrudRepository.java:130)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
我的班级是Java

@DynamoDBTable(tableName = "ARTICLE")
public class Article{

    @Id
    private String ID_TABLE;

    private String description;

public Article() {
    }

public Article(String description) {
     this.description=description;
    }

@DynamoDBHashKey(attributeName = "ID_TABLE")
    @DynamoDBAutoGeneratedKey
    public String getID_TABLE() {
        return ID_TABLE;
    }

@DynamoDBAttribute(attributeName = "Description")
    public String getDescription() {
        return description;
    }
}
我上传的主键值为null或空,但我得到了
@DynamoDBAutoGeneratedKey

我随目标文章发送:

export class Article{
    id: string;
    description: string;
}

  let newParam: Article= {
            id: '', 
            description: 'chair' 
    };
然后我现在明白了我如何发送“”,
@DynamoDBAutoGeneratedKey
没有运行,因为我尝试了

let newParam: Article= {
                id: null, 
我得到的错误为空

com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: null (Service: AmazonDynamoDBv2; Status Code: 407; Error Code: null; Request ID: null)
然后,如果我从Angular向SpringBoot发送了一个对象,这个对象Angular需要声明id,而SpringBoot的对象得到了这个对象,我如何生成密钥

用新数据编辑

我得到一个目标

控制器:

@RequestMapping(method = RequestMethod.POST, value = "/addParam", produces = MediaType.APPLICATION_JSON_VALUE)
    public MyMessage addParam(@RequestBody Article article) {
         try {
            pgRepository.save(article);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
}
存储库:

public interface Article Repository extends CrudRepository<Article , String> {
}
public接口文章存储库扩展了crudepository{
}

添加@DynamoDBAutoGeneratedKey注释后,将自动生成哈希键或范围键属性。保存这些属性时,对象持久性模型将生成随机UUID。只有字符串属性可以标记为自动生成的键

在调用save方法保存该密钥之前,该密钥将一直为空 在数据库中。当您调用save时,API将生成一个UUID 并将其保存在数据库中,同时将其设置到您的对象中

代码剪报将是:

public static void saveItem() {
   Article obj = new Article();
   obj.setDescription("abc123");
   // ID_TABLE field is null at this point      
   DynamoDBMapper mapper = new DynamoDBMapper(dynamoDBClient);
   mapper.save(obj);
   // ID_TABLE field will have a value at this point 
   System.out.println("Object was saved with id " + obj.getID_TABLE());
}


我希望这会有所帮助。

您能分享用于解析和保存对象的代码吗?但我从Angular发送值“id”。您无需从自己发送该值,因为您希望从数据库发送该值。只需从您的请求中删除它即可。只发送以下内容:let newParam:Article={description:'chair'};我无法从请求中删除,因为我需要此输入5,然后将其设置为null。