意外的空值neo4j

我不知道为什么我无法获得movie领域的价值。 我调试它,我发现movie是空的。 我张贴了一张照片,你会看到它 在此处输入图像描述 。 请给我一些建议。 我确信我已经成功建立了这种关系,可能在推荐方面出错了。 类还是密码?

 public interface MovieRepository extends GraphRepository { @Query("match (user:User {login: {0}})-[r:RATED]->(movie)(otherMovie) " + " where r.stars >= 3 and r2.stars >= r.stars and r3.stars >= r.stars " + " with otherMovie, avg(r3.stars) as rating, count(*) as cnt" + " order by rating desc, cnt desc" + " return otherMovie as movie, rating limit 10") List getRecommendations(String login); } 

recommend.class

 @QueryResult public class MovieRecommendation { Movie movie; int rating; public Movie getMovie() { return movie; } public void setMovie(Movie movie) { this.movie = movie; } public int getRating() { return rating; } public void setRating(int rating) { this.rating = rating; } } 

调节器

 @RequestMapping(value = "/user", method = RequestMethod.GET) public String profile(Model model, HttpServletRequest request) { HttpSession session = request.getSession(false); User user = (User) session.getAttribute("user"); model.addAttribute("user", user); if (user != null) { List mr = movieRepository.getRecommendations(user.getLogin()); MovieRecommendation movie = new MovieRecommendation(); Movie m = new Movie(); m.setTitle("AA"); movie.setMovie(m); mr.add(movie); model.addAttribute("recommendations", mr); } return "user/index"; } 

运行cypher使用neo4j-community

 match (user:ollie)-[r:RATED]->(movie)(otherMovie) where r.stars >= 1 and r2.stars >= r.stars and r3.stars >= r.stars with otherMovie, avg(r3.stars) as rating, count(*) as cnt order by rating desc, cnt desc return otherMovie limit 10 

我认为您的查询返回null。

所以第一个元素[0]有一个空的电影……

电影’AA’应该在数组的[1]中,因为你进行查询,之后你附加推荐