2016-09-12 3 views
1

der Code für Neo4j OGM v2.0.4 liest (Datei org/Neo4j/OGM/Kontext/GraphEntityMapper.java, Linien 313--339):Neo4J Java kann Relationen nicht laden: "kein Schreiber für ...": Neo4J OGM Protokollierungsfehler?

// If the source has a writer for an outgoing relationship for the rel entity, then write the rel entity on the source if it's a scalar writer 
    ClassInfo sourceInfo = metadata.classInfo(source); 
    RelationalWriter writer = entityAccessStrategy.getRelationalWriter(sourceInfo, edge.getType(), Relationship.OUTGOING, relationshipEntity); 
    if (writer == null) { 
     logger.debug("No writer for {}", target); 
    } else { 
     if (writer.forScalar()) { 
      writer.write(source, relationshipEntity); 
      mappingContext.registerRelationship(new MappedRelationship(edge.getStartNode(), edge.getType(), edge.getEndNode(), edge.getId(), source.getClass(), ClassUtils.getType(writer.typeParameterDescriptor()))); 
     } else { 
      oneToMany.add(edge); 
     } 
    } 

    //If the target has a writer for an incoming relationship for the rel entity, then write the rel entity on the target if it's a scalar writer 
    ClassInfo targetInfo = metadata.classInfo(target); 
    writer = entityAccessStrategy.getRelationalWriter(targetInfo, edge.getType(), Relationship.INCOMING, relationshipEntity); 

    if (writer == null) { 
     logger.debug("No writer for {}", target); 
    } else { 
     if (writer.forScalar()) { 
      writer.write(target, relationshipEntity); 
     } else { 
      oneToMany.add(edge); 
     } 
    } 

sollte aber nicht das erste Nachrichtenprotokoll lesen

logger.debug("No writer for {}", target); 

stattdessen? Ich bekomme eine verwirrende Log-Nachricht, die besagt, dass eine Klasse von mir keine Autoren hat, aber wo diese Klasse definitiv einen Schreiber hat. Ich frage, weil ich sicherstellen möchte, dass ich nichts übersehen habe.

Beifall und Dank,

Stephan

Antwort

1

Es ist möglich, dass Sie diese Debug-Meldung sehen, wenn Ihre Beziehung Entitäten Sammlungen sind. Der Mapper versucht zuerst einen relationalen Schreiber für einzelne Beziehungen zu finden und greift dann auf Sammlungen zurück. Es ist also wahrscheinlich nichts, worüber Sie sich Sorgen machen sollten, wenn Sie nicht feststellen, dass Ihre Beziehungsentitäten nicht beibehalten werden.

Verwandte Themen