ユーザーノード間に双方向の [:FRIENDSHIP] 関係があります。
(UserA)<-[:FRIENDSHIP {approved:true}]->(UserB)
関係をセットアップするための Java の小さなテスト関数を次に示します。
public void approveFriendship(User requestor, User requestee) {
Friendship friendship = new Friendship(requestor, requestee);
friendship.setApproved(true);
Friendship invertedFriendship = new Friendship(requestee, requestor);
invertedFriendship.setApproved(true);
requestor.getFriendships().add(friendship);
requestee.getFriendships().add(invertedFriendship);
userRepository.save(requestor);
userRepository.save(requestee);
}
このサイファー クエリは UserA の友人を返し、正常に動作します。
start user=node({0})
match (user)-[r?:FRIENDSHIP]->(friends)
where r.approved = true
return friends
このサイファー クエリは友人の投稿を返しますが、機能しません (空の結果を返します)。
start n=node({0})
match (n)<-[r?:FRIENDSHIP]->(friend)<-[:AUTHOR]-(friendposts)
where r.approved = true
return friendposts order by friendposts.createdAt
行を省略where r.approved = true
または変更するとwhere r.approved = false
、どちらの場合も承認済みステータスのない友達の投稿が返されます。
私がここで何か間違ったことをしている場合、誰でも見つけることができますか? とても感謝しております。