我有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;
}
}
然后是类 Cat:
@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;
}
}
还有一个类似的类Dog,它扩展Animal并使用另一个名为Dog 的表:@DynamoDBTable(tableName = "Dog")
问题是,当我尝试保存 a 时Cat,出现错误:
Cat: does not map HASH key on model
但是Cat应该有他的超类的哈希键。
我可以解决移动注释的问题:@DynamoDBTable(tableName = "Cat")从类Cat到超类,它可以将Cat. 我还没有测试这是否会导致问题Dog,但我不这么认为,因为它会被覆盖 @DynamoDBTable(tableName = "Dog")
但这个解决方案对我来说似乎很难看。有更好的解决方案吗?(我会考虑将 Dog 和 Cat 表合并到一张名为 Animal 的表中。)
繁花不似锦
相关分类