2009-07-14 5 views
2

私はGWTアプリケーションにgoogle datastoreを使用しています。私の同僚は、答えが得られないという面白い質問を思いつきました。いくつかのオブジェクトを削除すると、キーのセットはどうなりますか?Googleデータストア無名の1対多の関係

例えば、

Person.java

@PersistenceCapable(identityType = IdentityType.APPLICATION) 
public class Person { 
    @PrimaryKey 
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
    private Long id; 

    @Persistent 
    private Set<Key> favoriteFoods; 

    // ... 
} 

私はデータストアからfavoriteFoodオブジェクトの一部を削除した場合はどうなりますか?そのオブジェクトのキーは一連のキーにとどまりますか?キーをセットから削除するのは私の責任ですか?

答えて

5

である。キーは、削除するまでそこにとどまります。別の問題は、間違ってCatキーを犬のリストに貼り付けることができたことです。今のキーはタイプセーフではありません。 JDOの実装ですべての本を管理したい場合は、今のところ所有関係を使用する必要があります。ドキュメントhereは、これが将来変更される可能性があることを示しています。私は、JDOが、所有されていない関係をどのように処理するのかを知るために、JDOに十分な知識はありません。また、所有関係「マジック」でさえデータストア自体ではなくJDOレイヤーで発生することに注意してください。したがって、実際にデータストアへの実際の呼び出しが複数ある可能性があります(たとえばカスケード削除の場合)