2016-04-08 8 views
0

Arbeiten mit Neo4j Ich erstellte ein TSUser-Objekt, das einen Status zeigt, ob der Benutzer aktiv ist oder nicht. Wenn ich den Benutzer in der Neo4j-DB erstelle, wird der Status nicht angezeigt, als wäre er vorübergehend. Wenn ich jedoch den Benutzer in den Code laden (während des Debuggens), wird das Enum-Attribut festgelegt. Ich würde es gerne im Neo4j Client sehen.Neo4j ignoriert Enums

Die TSUser sieht wie folgt aus:

@NodeEntity 
public class TSUser{ 

    private Long id; 
    private State state; 
    private String username; 
    private String email; 

    //Getter/Setter 

} 

mit State

sein
public enum State{ 
    ACTIVE, INACTIVE 
} 

Nach einer TSUser persistierenden, ich ihn in der Client mit "MATCH n RETURN n" holen und das Ergebnis erhalten als gezeigt auf dem Bild. User without state

Antwort

1

Das Enum State muss zur Liste der Pakete gehören, die an die SessionFactory geliefert werden. Wenn nicht, wird es nicht beibehalten.

Du bist wahrscheinlich diesen Wert im Debug-Modus zu sehen, weil Sie in der gleichen Sitzung sind, und Neuladen der Einheit Lasten und Karten username und email, lässt aber state allein, da sie nicht in der Grafik nicht vorhanden ist. Wenn Sie eine session.clear() vor dem Laden der Entität tun würden, würden Sie den fehlenden Wert finden.

+0

Sie haben Recht. Ich habe es bis jetzt nicht bemerkt, aber der Fehler ist aufgetreten, als ich die Paketstruktur umstrukturiert habe. Vielen Dank, das nervte mich stundenlang :) – Urr4