3

GAE-JDO ドキュメントは、子キーから親キーを取得できることを示唆しています。

キーの文字列表現は暗号化されていないことにも注意してください。ユーザーはキー文字列をデコードして、エンティティとその祖先の種類と識別子を含むコンポーネントを抽出できます。

REF: 「エンティティ、プロパティ、およびキー」

以下を使用してキーを生成しています。

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
private String id;

データストアを調べると、エンティティ キーは次のようになります。

parent.id = agpzfnZpdmVlbGFichQLEgdTZXNzaW9uGICAgICgwMsIDA
child1.id = agpzfnZpdmVlbGFiciYLEgdTZXNzaW9uGICAgICgwMsIDAsSBVN0YWdlGICAgICAwK8KDA
...

(ここで、親はタイプ Child の子を持ちます)。したがって、私が探しているのは、次のような GWT 関数です。

String getParentIdFromChildId(String childId) {
    String parentId = ...        
    return parentId;
}

クライアント (GWT) から子オブジェクトを参照できるように (最初にその親を見つけることによって):

Child child = data.getParent(getParentIdFromChildId(childId)).getChild(childId);

親IDも追跡することでこの問題を解決できますが、親情報がすでに子IDに埋め込まれている場合、これは非効率的です。

前もって感謝します。

〜オーウェン

4

1 に答える 1

1

child1.getParent()エンティティの親のキーを返しますchild1

entitychild1があり、その親の ID が必要な場合は、次のように呼び出します。

String parentId = child1.getParent().id;

親のIDを返します。

詳細はこちら: エンティティ 'getParent()' メソッドのドキュメント

それがあなたが望んでいたことかどうかはわかりませんが、それが私のやり方です。

ありがとう、

〜サミール

于 2013-06-11T01:16:22.783 に答える