私はJDOを初めて使っていますが、私はこれを使ってコードをポータブルにしています(現在私はAppEngineを使用しています)。次のGoogleトーク:http://dl.google.com/io/2009/pres/W_0415_Building_Scalable_Complex_App_Engines.pdfでは、Brett Slatkinが、子のキーを使用して親エンティティを取得するための新しい効率的なパターンを示しました[スライド23〜25]。彼の例では、Pythonのクラスの親子関係のマッピングはありませんでした。私はPythonの仕組みがわからないが、JDOで推測しているところで、親をどこかに指定する必要がある。したがって、次のコードのために、どのように私はメッセージに子としてMessageIndexをマッピングすることができますJDOで親子関係をマップするにはどうすればよいですか?各親には子リストがありますか?
// Message.java
@PersistenceCapable
public class Message {
@PrimaryKey
@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
Long id;
@Persistent String sender;
@Persistent Text body;
}
// MessageIndex.java
public class MessageIndex {
@PrimaryKey
@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
Long id;
@Persistent List<String> receivers;
}
// Query.java - Query Example
Query query = pm.newQuery("select id from MessageIndex" +
"where receivers == NameParam " +
"parameters String NameParam");
List<Key> indexes = (List<Key>) query.execute("Smith"); // List the child keys here
List<Key> keys = new List<Key>; // A place to store parent keys
for (Key k : indexes)
{
keys.add(k.getParent()); // Here, how would getParent() know who it's parent is?
}
List <Message> messages = new List <Message>
for (Key k : keys)
{
messages.add(pm.getObjectById(Message.class, k));
}
だから、どのように私は、この例では、メッセージとMessageIndex間の親子関係をマッピングすることができますか?私はPythonコードを正しく変換しましたか?
コメント/ご提案は大歓迎です!
P.S.ビデオのリンクはここにあります:http://www.google.com/events/io/2009/sessions/BuildingScalableComplexApps.html - >非常に興味深い!
ありがとうございました。