objectify-appengine - встроенный класс - не поддерживаемый тип свойства - PullRequest
2 голосов
/ 25 марта 2011

Я испытываю пример встроенных классов (версия 2.2.3) (вики) в google app engine. Я получаю эту ошибку:

java.lang.IllegalArgumentException: one: com.mypkg.LevelOne is not a supported property type.
    at com.google.appengine.api.datastore.DataTypeUtils.checkSupportedSingleValue(DataTypeUtils.java:184)

Код у меня такой же, как и в вики. Раздел в контроллере:

    EntityWithEmbedded ent = new EntityWithEmbedded();
    ent.one = new LevelOne();
    ent.one.foo = "Foo Value";
    ent.one.two = new LevelTwo();
    ent.one.two.bar = "Bar Value";

Класс EntityWithEmbedded:

import javax.jdo.annotations.Embedded;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class EntityWithEmbedded {
    @Id public Long id;
    @Embedded public LevelOne one;
    //getter & setters here
}

Уровень классаOne:

import javax.persistence.Embedded;
public class LevelOne {
    public String foo;
    public @Embedded LevelTwo two;
    //getter & setters here
}

Уровень классаДва:

public class LevelTwo {
    public String bar;
        //getter & setters here
}

Так что это основной пример, который я пробую. Есть идеи о том, чего не хватает?

1 Ответ

5 голосов
/ 26 марта 2011

Вы используете неправильную аннотацию @Embedded в EntityWithEmbedded.

Используйте javax.persistence.Embedded вместо javax.jdo.annotations.Embedded

...