2

Google App Engineでobjectify(バージョン2.2.3)埋め込みクラスの例(wiki)を試しています。このエラーが発生します:

java.lang.IllegalArgumentException:one:com.mypkg.LevelOneはサポートされているプロパティタイプではありません。
    com.google.appengine.api.datastore.DataTypeUtils.checkSupportedSingleValue(DataTypeUtils.java:184)で

私が持っているコードはWikiのものと同じです。コントローラのセクション:

    EntityWithEmbedded ent = new EntityWithEmbedded();
    ent.one = new LevelOne();
    ent.one.foo="Foo値";
    ent.one.two = new LevelTwo();
    ent.one.two.bar="バーの値";

EntityWithEmbeddedクラス:

インポートjavax.jdo.annotations.Embedded;
インポートjavax.persistence.Entity;
インポートjavax.persistence.Id;

@実在物
パブリッククラスEntityWithEmbedded{
    @Id public Long id;
    @Embedded public LevelOne one;
    //ここでゲッターとセッター
}

クラスlevelOne:

インポートjavax.persistence.Embedded;
パブリッククラスLevelOne{
    public String foo;
    public @Embedded LevelTwo two;
    //ここでゲッターとセッター
}

クラスLevelTwo:

パブリッククラスLevelTwo{
    パブリック文字列バー;
        //ここでゲッターとセッター
}

ですから、私が試しているのは基本的な例です。何が欠けているかについてのアイデアはありますか?

4

1 に答える 1

5

で間違った@Embedded注釈を使用していますEntityWithEmbedded

javax.persistence.Embeddedではなく使用javax.jdo.annotations.Embedded

于 2011-03-26T16:19:58.490 に答える