Acc*_*ivo 2 java amazon-web-services amazon-dynamodb
我有3节课:
public abstract class Animal{
private String id;
private String name;
@DynamoDBHashKey(attributeName = "Id")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@DynamoDBAttribute(attributeName = "Name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
然后是一类猫:
@DynamoDBTable(tableName = "Cat")
public class Cat extends Animal{
private String purr;
@DynamoDBAttribute(attributeName = "Purr")
public String getPurr() {
return purr;
}
public void setPurr(String purr) {
this.purr = purr;
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个类似的类Dog,它扩展Animal并使用了另一个称为Dog的表:@DynamoDBTable(tableName = "Dog")
问题是当我尝试保存时Cat,出现错误:
Cat: does not map HASH key on model
Run Code Online (Sandbox Code Playgroud)
但是Cat应该具有他超类的哈希键。
我可以解决将注解:@DynamoDBTable(tableName = "Cat")从类Cat移到超类,它可以保存Cat。我仍然没有测试这是否会导致问题Dog,但我认为不是,因为它将被覆盖。 @DynamoDBTable(tableName = "Dog")
但是这种解决方案对我来说似乎很难看。有更好的解决方案吗?(我会考虑将“狗”和“猫”这两个表合并为一个仅称为“动物”的表。)
将此注释放在超类上:
@DynamoDBDocument
public abstract class Animal{
//...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
353 次 |
| 最近记录: |