0

JDOに関するGAEドキュメントを読みましたが、私のシナリオに合った例が見つかりませんでした。私を助けてください。

と のような 2 つの JDO クラスがAありBます。"A"クラスは と 1 対多の関係にあり"B"ます。この関係は、依存関係もありません。クラス"A"であり、"B"次の構造を持っています(簡単にするために、注釈を使用していません)

class A {

private String name;
private String id; // primary Key
private List<B> b;

..... getter setter
}

class B {

private Key key; // primary Key
private String id; // this is the attribute of the Class A
private String someData;

}

私のシナリオは、最初にクラス"A"オブジェクトを 1 つずつ作成し、Persistent Manager を使用してデータ ストアに保存するというものです。この保存用の " List<B> b" は null になります。bcz にはデータがありません。

"id"その後、Class " の属性A"用と " " 属性用の 2 つのフィールドを持つフォームを提供するとしますsomeData。このユーザー"id"では、保存されている class のオブジェクトの 1 つを提供し"A"ます。ユーザーが結果を送信するときは、作成する必要があります。クラス"B"オブジェクトを作成してデータ ストアに保存しlist of B、対応する Class"A"オブジェクトに追加する必要があります。

ここで私の質問は、この JDO クラスの 1 対多の関係を維持するためにどのようなアプローチを使用する必要があるかということです。最初にフォームで提供されたに"A"基づいてクラスオブジェクトを取得する必要があり、オブジェクトを取得した後、クラスオブジェクトを取得してリストにクラスオブジェクトを追加し、クラスオブジェクトを保存します(オブジェクトが PM に添付されると、自動的に保存されます) ) または他のアプローチは、クラスオブジェクトを作成し、PM を使用してデータ ストアに保存することです。"id""list of B""B""A""B"

クラスオブジェクトを作成Bしてデータストアに保存するだけで、関係が維持される場合。クラスオブジェクトを取得するときの簡単な言葉は、クラスAオブジェクトには"list of B"クラス「A」オブジェクトにリンクされたすべてのオブジェクトがあります(Bクラスにはクラスの主キーである属性があるためA)

ありがとう

4

1 に答える 1

0

Java |の GAE/J ドキュメントは、データの保存 | データストア | JDO | JDO におけるエンティティ関係 | Unowned Relationshipsがここで役に立ちます。

Aとの関係Bは所有されていないため、ABインスタンスはすべて別のエンティティ グループに属します。Bしたがって、 のインスタンスを作成/更新/削除し、それに応じて の関連するインスタンスを更新するには、2 つの個別の永続化操作を実行する必要がありますA

これは役に立ちますか?

于 2013-11-01T10:19:06.450 に答える