2016-04-21 48 views
1

在旧版本的SDN我们就以下界面库春数据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()); 

但是,目前的版本不支持它。在SDN中实现诸如createRelationshipBetween或getRelationshipBetween之类的功能的最佳方式是哪种?

回答

4

SDN 4不支持使用API​​管理低级图形操作。

相反,要执行的图操作是从您的域模型类中推断出来的,以及您对它们做了什么。

例如,创建一个User类,如下所示:

class User { 

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

如果你现在添加或删除用户在friends列表,并通过标准库的方法保存在正常方式的用户来说,这将实现什么你需要自动 - 适当的关系将被添加/删除。您不必告诉SDN该做什么,因为ORM/OGM的目的是将您从底层数据模型及其实现细节中隐藏起来,并允许您操作域模型本身。

如果您确实需要直接在图上执行这些低级操作,请使用Cypher查询方法。

你可以找到更多关于SDN的信息4.1 here