Frage

Ich bin mit dem App Engine Goole Datenspeicher mit Java und versuchen, ein Objekt mit einer Liste der Aufzählungen zu laden. Jedes Mal lade ich das Objekt der Liste null ist. Das Objekt ist

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class ObjectToSave {

    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long id;

    @Persistent
    private List<AnEnum> anEnumList;

    //public getters and setters
}

Die Enumeration ist einfach

public enum AnEnum {
    VALUE_1,
    VALUE_2;
}

Der Code, es zu speichern ist

ObjectToSave objectToSave = new ObjectToSave();
List<AnEnum> anEnumList = new ArrayList<AnEnum>();
anEnumList.add(AnEnum.VALUE_1);
objectToSave.setAnEnumList(anEnumList);
PersistenceManager pm = pmfInstance.getPersistenceManager();
try {
    pm.makePersistent(objectToSave);
} finally {
    pm.close();
}

Der Code zu laden ist

PersistenceManager pm = pmfInstance.getPersistenceManager();
try {
    Key key = KeyFactory.createKey(ObjectToSave.class.getSimpleName(), id);
    ObjectToSave objectToSave = pm.getObjectById(ObjectToSave.class, key);
} finally {
    pm.close();
}

kann ich die Daten in den Datenspeicher betrachten http: // localhost: 8080 / _ah / admin und kann meine Liste gespeichert wurde, aber es ist nicht da, wenn das Objekt geladen wird.

siehe

habe ich mein Projekt mit der Eclipse-Plugin und habe keine Änderungen an den Datenspeicher-Einstellungen vorgenommen, soweit ich weiß. Warum also id meine Enum Liste null?

War es hilfreich?

Lösung

Ja, aber Ihr Listenfeld ist in dem Standard nicht Gruppe beim Laden holen, so wird daher nicht geladen. Lesen Sie JDO Gruppen holen. Man konnte es an die DFG hinzufügen oder ermöglichen eine benutzerdefinierte Gruppe holen, oder einfach nur „berühren“ das Feld vor dem PM schließen.

- Andy ( Datanucleus )

Andere Tipps

Wie erstellen Sie eine Instanz von ObjectToSave? Der Standardwert aller Instanzvariablen Referenztypen null ist, so sei denn, Sie haben (zusätzlich) Code eine Instanz von List<AnEnum> zu erstellen und zuweisen, um anEnumList, null zu erwarten wäre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top