2

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 (コードを提供してください) の場合、Google サイトには次のような警告が表示されます(これはわかりません)。

ポリモーフィック クエリ。クラスのクエリを実行してサブクラスのインスタンスを取得することはできません。各クラスは、データストア内の個別のエンティティの種類によって表されます。

この警告は、app-engine の Java では実行できないことを Python で実行できることを意味しますか?

4

1 に答える 1

1

アプリ エンジン バックエンドを Java に変換する理由は、アプリ エンジン接続デバイスを作成するための Google Eclipse プラグイン (GEP) のためだと思います。その場合、Python で開発することで得られる節約は、GEP を使用する利点を上回ります。

あなたが引用する警告は複合オブジェクトに関するものではありません。これは、 Account クラスが Invitation クラスにあるものです。

繰り返しになりますが、Java (GEP 以外) を使用する明確な理由がない限り、Python を使い続ける必要があります。対処する無関係な混乱がはるかに少なくなります。

于 2013-03-25T15:55:45.440 に答える