ActiveAndroid抽象类表

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (15)

有没有人知道是否可以在ActiveAndroid中为抽象类创建一个表。例如,我可以有一个抽象类动物,它有两个具体的类:Dog和Cat。我想要做这样的事情:

List<Animal> animals = new Select().from(Animals.class).execute();

which would result in 'animals' containing all of the saved Cats and Dogs. Or:

Animal animal = new Select().from(Animals.class).where("name = ?", name).executeSingle();

动物可能是猫也可能是狗。不幸的是,当我这样做时,我得到了一个异常,因为没有为抽象类动物创建任何表。有谁知道我会如何使用ActiveAndroid来做这件事吗?

提问于
用户回答回答于

不幸的是ActiveAndroid不支持那样的车型继承,只是还没有(https://github.com/pardom/ActiveAndroid/issues/14https://github.com/pardom/ActiveAndroid/issues/257)。

如果你想修改ActiveAndroid,你可以这样做:

  • 创建一些允许你将模型(Animals)定义为非持久化的东西(参考com.activeandroid.annotation.Table)。
  • 试图执行该类的查询时,可以使用反射来确定其子类,然后让它为每个子类执行该查询。
  • 然后,基本上将每个查询的结果列表合并到一个列表中并返回。

扫码关注云+社区