0

私が作成しているプロジェクトでは、Objectify と Google AppEngine を使用しています

Google Groupsからの古いメッセージを引用していますが、問題は同じです:

私が解決しようとしている問題は次のとおりです。1 つのスーパークラスの複数のサブクラスのインスタンスをデータストアに永続化し、そのスーパークラスを照会してそれらを取得したいと考えています。

(たとえば、GameのクエリはChessBackgammonのインスタンスを返します)。

Objectify を使用してこれを達成する方法はありますか?

欲しいものは同じなのですが、まだ答えが出ていない話題なので(3歳です)、同じ疑問を持ってこちらに引っ越しました。

構成として、Objectify でポリモーフィズムを使用しました。「@Entity」で注釈が付けられたクラス「Game」と、「@Subclass」で注釈が付けられたGameを拡張する2つのクラス(「Chess」と「Backgammon」)があります。

「ゲーム」でクエリを実行すると、2 つのゲーム インスタンスが取得されます。しかし、チェスとバックギャモンのインスタンスを取得したい

2010年から現在まで、この質問は解決されましたか?

ありがとさよなら

4

2 に答える 2

1

objectify の polymorphismを使用した場合、単純ではありません。親クラスを照会するだけです。

注: objectify でのポリモヒズムは、サブクラスの型をマークするエンティティに特別な隠しフィールド (^dおよび) を追加することによって実現されます。^iしたがって、同じ親クラスを持つすべてのオブジェクトは、同じエンティティの種類 (親クラスの @Entity によって定義されます) を持ちます。

于 2013-11-11T11:00:03.460 に答える
0

この Google グループ リンクは古く、Objectify でポリモーフィズムが実装されるよりも前のものです。はい、Objectify (非常に長い間) は @EntitySubclass アノテーションによるポリモーフィズムをサポートしています。

ピーターの答えは正しいです。期待される動作が見られない場合は、何か間違ったことをしているので、質問でさらに詳しく説明するか、(より良い) objectify google グループに投稿する必要があります。

于 2013-11-11T20:03:56.040 に答える