对于我正在制作的项目,我正在使用Objectify和Google AppEngine
我引用来自Google Groups的旧消息,但我遇到的问题是一样的:
以下是我要解决的问题:我想坚持实例 一个超类的几个子类到数据存储区,然后 通过查询该超类来检索它们。
(例如,对游戏的查询会返回国际象棋和步步高的实例)。
有没有办法用Objectify来实现这个目标?
因为我想要的东西是一样的,但主题还没有提供答案(它已经3年了),我带着同样的问题搬到了这里。
作为配置,我在Objectify上使用了多态。 我有一个用“@Entity”和2个类(“Chess”和“Backgammon”)注释的“Game”类,它扩展了Game,注释了“@Subclass”。
如果我查询“游戏”,我会得到2个游戏实例。但我想获得国际象棋和步步高实例
从2010年到现在,这个问题已经解决了?
由于 再见
答案 0 :(得分:1)
如果您使用objectify's polymorphism,那么就不简单了:只查询父类。
注意:objectify中的多态性是通过向标记子类类型的实体添加特殊隐藏字段(^d
和^i
)来实现的。因此,具有相同父类的所有对象将具有相同的实体类型(由父类的@Entity定义)。
答案 1 :(得分:0)
google group链接很古老,早于Objectify中多态的实现。是的,Objectify(现在很长一段时间)支持@EntitySubclass注释的多态性。
彼得的回答是正确的。如果你没有看到预期的行为,那么你做错了什么,需要在问题中详细说明,或者(更好)发布到客观化的谷歌小组。