2016-04-21 8 views
1

In älteren Versionen SDN wir für Repositorys folgende Schnittstelle hatteFrühling Daten Neo4j 4: RelationshipOperationsRepository

org.springframework.data.neo4j.repository.RelationshipOperationsRepository; 

public interface UserRelationRepository extends GraphRepository<UserEntity>, RelationshipOperationsRepository<UserEntity> { 

MakeFriend rel = userRepository.getRelationshipBetween(startUser, endUser, MakeFriend.class, RelTypes.FRIEND.name()); 
     if (rel != null) { 
      startUser.getFirstname() + " + " + endUser.getFirstname()); 
     } 

     userRepository.createRelationshipBetween(startUser, endUser, MakeFriend.class, RelTypes.FRIEND.name()); 
     userRepository.createRelationshipBetween(endUser, startUser, MakeFriend.class, RelTypes.FRIEND.name()); 

Aber aktuelle Version nicht unterstützt wird. Wie implementiert man am besten Funktionalität wie createRelationshipBetween oder getRelationshipBetween in SDN?

Antwort

4

SDN 4 unterstützt nicht die Verwaltung von Grafikoperationen auf niedriger Ebene mithilfe von APIs.

Stattdessen werden die auszuführenden Diagrammoperationen aus Ihren Domänenmodellklassen abgeleitet und was Sie damit tun.

Erstellen Sie zum Beispiel eine User Klasse wie folgt:

class User { 

    List<User> friends = new ArrayList(); 
} 

Wenn Sie nun Benutzer in der friends Liste hinzufügen oder entfernen und den Benutzer in gewohnter Weise über die Standard-Repository Methoden speichern, wird dies erreichen, was Sie müssen automatisch - die entsprechenden Beziehungen hinzugefügt/entfernt werden. Sie müssen SDN nicht sagen, was zu tun ist, da der Punkt eines ORM/OGM Sie vor dem zugrunde liegenden Datenmodell und seinen Implementierungsdetails verbergen und Ihnen erlauben soll, das Domänenmodell selbst zu manipulieren.

Wenn Sie diese Low-Level-Operationen wirklich direkt im Diagramm ausführen müssen, verwenden Sie Cypher mit einer Abfrage-Methode.

Sie können mehr über SDN 4.1 here

herausfinden