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 相对应。