图数据库

https://www.ibm.com/developerworks/cn/java/j-lo-neo4j/

public interface PublishRepository extends GraphRepository {
@Query(“start user1=node({0}) ” +
” match user1-[:FOLLOW]->user2-[r2:PUBLISH]->followedMessage” +
” return r2”)
List getFollowingUserMessages(User user);

@Query(“start user=node({0}) match user-[r:PUBLISH]->message return r”)
List getOwnMessages(User user);
}

以 getFollowingUserMessages 方法的遍历声明为例,“node({0})”表示当前节点,“start user1=node({0})”表示从当前节点开始进行遍历,并用 user1 表示当前节点。“match”用来表示遍历时选中的节点应该满足的条件。条件“user1-[:FOLLOW]->user2-[r2:PUBLISH]->followedMessage”中,先通过类型为 FOLLOW 的关系找到 user1 所关注的用户,以 user2 来表示;再通过类型为 PUBLISH 的关系,查找 user2 所发布的消息。“return”用来返回遍历的结果,r2 表示的是类型为 PUBLISH 的关系,与 getFollowingUserMessages 方法的返回值类型 List 相对应。

猜你喜欢

转载自blog.csdn.net/lych_1990/article/details/81630425