Google Cloud Datastore - 通过继承共享常见抽象模型时如何使用 Objectify 的注释?



目前,我有一些抽象模型类,它们与其他具体模型有共同的行为。例如,抽象的SearchableModel.class可能会被其他具体模型继承。

在使用Objectify时,我想对SearchableModel类进行注释,因为它需要自己字段的持久性。然而,我对做任何类型的多态查询都不感兴趣,我也不希望数据存储中有任何"SearchableModel"类型的实体,只希望有继承自SearchableModel的具体类。我应该如何处理@Entity/@EntitySubClass注释?

如果我用@Entity注释抽象类和具体类,并持久化/加载具体类的实例,它会按预期工作吗?

我知道我可以自己测试,但是,我还没有设置objectify。我仍在努力弄清楚它如何与我目前的型号一起使用。

关于如何组织这种依赖的任何其他建议也值得赞赏。

谢谢。

  • 不要使用@EntitySubclass
  • 请从您的SearchableModel进行扩展
  • 请将@Entity放在(顶级)具体类上

这会给你想要的。您可以在基类中放置公共字段(带有Objectify注释,包括@Id/@Parent)和行为。不会有任何数据存储多态性,每个@Entity都有自己的数据存储类型。

最新更新