为了账号安全,请及时绑定邮箱和手机立即绑定

DynamoDB 继承无映射父哈希

DynamoDB 继承无映射父哈希

qq_花开花谢_0 2021-08-19 18:48:34
我有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 的表中。)
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

将此注释放在超类上:


@DynamoDBDocument

public abstract class Animal{

//...

}


查看完整回答
反对 回复 2021-08-19
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信