考虑以下 Python 中的应用引擎模型。
class Account(ndb.Model):
email = ndb.StringProperty()
nickname = ndb.StringProperty()
phone = ndb.IntegerProperty()
date = ndb.DateTimeProperty(auto_now_add=True)
class Invitation(ndb.Model):
sender = ndb.StructuredProperty(Account, required=True)
recipient = ndb.StructuredProperty(Account, required=True)
message = ndb.StringProperty()
date = ndb.DateTimeProperty(auto_now_add=True)
@classmethod
def get_recipient(cls, sender, date):
qry = Invitation.query(ndb.AND(Invitation.sender == sender, Invitation.date == date)).fetch(projection=['recipient']))
return qry
我将如何用 Java 重写上面的代码?请注意,Account 是一个适当的实体/模型——不受 java 的EmbeddedEntity
. 另外,如果回复是JDO(请提供代码),谷歌网站有一个警告说(我不明白):
多态查询。您不能通过查询类来获取子类的实例。每个类都由数据存储区中的一个单独的实体类型表示。
这个警告是否意味着我们可以用 python 做一些我们不能用 app-engine 上的 java 做的事情?