Java DynamoDB错误插入映射
我在AWS DynamoDB中尝试insert,我得到了insert寄存器,但在Java(Eclipse)中插入时出错,但重复一次,我在DynamoDB我的insert中看到了表 我得到错误->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
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。