2016-04-21 2 views
1

В старых версиях SDN мы следующий интерфейс для хранилищSpring 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()); 

но текущая версия не поддерживает его. Каков наилучший способ реализовать такие функции, как createRelationshipBetween или getRelationshipBetween в SDN?

ответ

4

SDN 4 не поддерживает управление низкоуровневыми графическими операциями с использованием API.

Вместо этого выполняемые операции графа выводятся из классов классов домена и того, что вы делаете с ними.

Например, создать User класс следующим образом:

class User { 

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

Если теперь добавлять или удалять пользователей в friends списке и сохраните пользователя обычным способом с помощью стандартных Repository методов, это добиться того, что вам необходимо автоматически - соответствующие отношения будут добавлены/удалены. Вам не нужно указывать SDN, что делать, потому что точка ORM/OGM - это скрыть вас от базовой модели данных и ее деталей реализации и позволить вам манипулировать самой моделью домена.

Если вам действительно нужно выполнить эти низкоуровневые операции непосредственно на графике, вы используете Cypher с методом запроса.

Вы можете узнать больше о SDN 4.1 here