2

私は最初の本格的な Google App Engine プロジェクトで Objectify を使用していますが、通常は順調に進んでいます (なんて素敵なライブラリでしょう!)。残念ながら、エンティティを永続化するときに問題が発生しました。

私の基本的な構造は次のとおりです。

@Entity
class Parent {
    @Id
    long id = 123;
    @Embedded
    Child[] children;
}

@Entity
class Child {
    @Id
    Long id;
}

親エンティティの ID を手動で宣言していますが、埋め込まれた子エンティティが ID を自動的に生成するようにします。子エンティティの @Id を完全に削除してその周りにコーディングすることについて疑問に思いましたが、@Id を必要とするエンティティに関するエラーが発生します。

誰か助けてくれませんか?親エンティティの子の間の変更を比較するために id を使用しているため、これは現在の設計方法のかなり基本的なものです。ただし、それがより良い解決策である場合は、再設計できます。

4

1 に答える 1

5

http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Entity_Representationから、 @Embedded エンティティが実際にはデータストア内の別個のエンティティであるようには見えません。それらは、親オブジェクトのフィールドに直接プロパティとして保存されます。

子エンティティを個別にアクセス可能な独自のオブジェクトにしたい場合はParent、キーまたは ID の配列を保持するように変更してから、Childオブジェクトを個別にインスタンス化する必要があります。これにより、各子の ID が生成されます (これは の id 配列に格納できますParent)。

于 2011-08-24T17:04:55.927 に答える