Ich versuche ein funktionierendes System von einem eingebetteten Tomcat-Server mit Spring-Boot, Joiefaces und der eingebetteten neo4j -graph-database mit dem Objekt-Mapping OGM zu bekommen. Alles scheint gut zu funktionieren. Ich verpflichte meine Quellen zu https://svn.riouxsvn.com/circlead-embedd/circlead-embedded/Warum Neo4j-Ogm speichert Beziehungen zu eingebetteten neo4j-Datenbank nicht?
Das Problem ist, dass alle neo4j-ogm -examples (siehe heißt http://www.hascode.com/2016/07/object-graph-mapping-by-example-with-neo4j-ogm-and-java/) zeigen, dass @Relationship mit OGM arbeitet. Aber wenn ich es testen mit
@NodeEntity
public abstract class GenericNode<T> implements INode<T> {
@GraphId
public Long id;
@SuppressWarnings("unused")
private void setId(Long id) {
this.id = id;
}
public String label;
@Relationship(type = "PARENT_OF", direction = Relationship.INCOMING)
public Set<T> parents = new HashSet<T>();
@Relationship(type = "CHILD_OF", direction = Relationship.OUTGOING)
public Set<T> children = new HashSet<T>();
...
dann alle Beziehungen scheinen nicht in der Datenbank geschrieben werden, da die Leitungen
Role rp = new Role("Role 1");
Role rc = new Role("Role 2");
rc.addParent(rp);
session.save(rc);
Iterable<Role> roles = session.query(Role.class, "MATCH (x) RETURN x;", Collections.<String, Object>emptyMap());
for (Role role : roles) {
System.out.println(role);
}
zeigen in der Konsole, die die Beziehungen der Datenbank fehlen. Es scheint, dass nur in der aktiven Sitzung Beziehungen gefunden werden. Nach einem Server-Neustart fehlen alle Beziehungen.
Role [id=52, label=Role 2, parents=[]]
Role [id=53, label=Role 1, parents=[]]
Role [id=54, label=Role 1, parents=[]]
Role [id=55, label=Role 2, parents=[54]]
Ich habe keine Ahnung, was diese Art von Fehler auftritt. Ich benutze neo4j-ogm 2.1.2 und neo4j 3.1.3.
Irgendeine Idee?
Beachten Sie auch, dass Sie zwei Arten von Beziehung haben zwischen Eltern und Kind - 'PARENT_OF' und' CHILD_OF' - das ist normalerweise ein Modellierungsfehler und 1 Beziehung ist genug. Die Richtung der Beziehung sollte Ihnen die Semantik sagen - was ist ein Elternteil und was ist ein Kind. –