データストアにエンティティを格納する際に以下のようなエラーが出た。

Class *** has multiple relationship fields of type ***

察するにデータストアに格納されるエンティティが保持できる同一の型の子エンティティが2つ以上あると吐くエラーみたい。少し古い記事だけど↓でも議論されてるみたい。

Google-App-Engine-Japan : 同一型の子Entityを持つと、子Entityの判断がつかない

実際以下のようなコードだとエラー吐く。

@Element(dependent = "true")
private List<TestEntity> newEntity = new ArrayList<TestEntity>(); @Element(dependent = "true")
private List<TestEntity> oldEntity = new ArrayList<TestEntity>();

上の例だとTestEntityを継承した空クラスを指定してもやっぱりエラー。

対処法は設定ファイルを書き換えるか、継承を使わないで中身が全く同じクラスをコピペ作成するか、っぽい。

jdoconfig.xml
<property name="datanucleus.appengine.multipleRelationsOfSameTypeAreErrors" value="false"/>

なんか設定ファイル弄って無理やり動かすのも癪なのでクラスを継承しないで作って解決。

関連性がある記事

Disqusでコメント