2

そのため、GWT アプリに Google データストアを使用していますが、同僚が興味深い質問を思いつきましたが、それに対する答えはありません。一部のオブジェクトを削除すると、一連のキーはどうなりますか?

例えば、

Person.java

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

    @Persistent
    private Set<Key> favoriteFoods;

    // ...
}

favoriteFood オブジェクトの一部をデータストアから削除するとどうなりますか? そのオブジェクトの鍵は鍵のセットに残っていますか? セットからキーを削除するのは私の責任ですか?

4

1 に答える 1

5

うん。鍵は外すまで残ります。もう 1 つの落とし穴は、誤って Cat キーを Dog のリストに貼り付けてしまう可能性があることです。現在、キーはタイプセーフではありません。JDO 実装にすべての帳簿管理を任せたい場合は、今のところ所有関係を使用する必要があります。ここのドキュメントは、これが将来変更される可能性があることを暗示しています。私は、所有されていない関係を通常どのように処理するかを知るほど、JDO に精通していません。また、所有関係の「魔法」でさえ、データストア自体ではなく JDO レイヤーで発生することに注意してください。そのため、1 つの操作のように見えるものは、実際にはデータストアへの複数の呼び出しである可能性があります (たとえば、カスケード削除状況)。

于 2009-07-15T02:33:59.447 に答える