Java Spring Boot和Neo4j:返回节点和某个值时对象中为Null

Java Spring Boot和Neo4j:返回节点和某个值时对象中为Null,java,neo4j,spring-boot,cypher,spring-data-neo4j,Java,Neo4j,Spring Boot,Cypher,Spring Data Neo4j,当我尝试使用cypher查询返回节点和值(电影和该电影的用户分级)时,集合中的对象包含空值。若我在Neo4j浏览器中执行查询,一切看起来都正常,但在代码中,有空值。我不知道我在哪里犯了错误 存储库中的密码查询: @Query("match(p1:Person {nick:{0}})-[r:RATED]->(m:Movie)\n" + "return m as movie,r.rate as rating") Set<MovieRating> userRated

当我尝试使用cypher查询返回节点和值(电影和该电影的用户分级)时,集合中的对象包含空值。若我在Neo4j浏览器中执行查询,一切看起来都正常,但在代码中,有空值。我不知道我在哪里犯了错误

存储库中的密码查询:

@Query("match(p1:Person {nick:{0}})-[r:RATED]->(m:Movie)\n" +
        "return m as movie,r.rate as rating")
Set<MovieRating> userRatedMoviesRatings(String nick);
pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>dp.neo4j</groupId>
<artifactId>movies</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.3.RELEASE</version>
</parent>

<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-neo4j</artifactId>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>net.sourceforge.jexcelapi</groupId>
        <artifactId>jxl</artifactId>
        <version>2.6</version>
    </dependency>
    <!--<dependency>-->
        <!--<groupId>org.springframework.boot</groupId>-->
        <!--<artifactId>spring-boot-starter-security</artifactId>-->
    <!--</dependency>-->

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>spring-releases</id>
        <name>Spring Releases</name>
        <url>https://repo.spring.io/libs-release</url>
    </repository>
    <repository>
        <id>neo4j</id>
        <name>Neo4j</name>
        <url>http://m2.neo4j.org/</url>
    </repository>
</repositories>

4.0.0
dp.4J
电影
1.0-快照
罐子
org.springframework.boot
spring启动程序父级
1.3.3.1发布
1.8
UTF-8
org.springframework.boot
弹簧启动装置
org.springframework.data
spring-data-neo4j
org.hibernate
休眠验证器
org.springframework.boot
弹簧靴开发工具
真的
net.sourceforge.jexcelapi
jxl
2.6
org.springframework.boot
springbootmaven插件
春假
春假
https://repo.spring.io/libs-release
neo4j
Neo4j
http://m2.neo4j.org/
我的朋友! 我也有同样的问题。 问题是,您的存储库可能工作在错误的存储库中。 在此处设置适当的类名:

    public interface <someName> extends PagingAndSortingRepository<#YourCustomClass,Long>
公共接口扩展了分页和排序存储库

希望它能对某人有所帮助

这很奇怪。您确定您的数据库不包含标题为空的电影吗?我会在存储库中的cypher查询上添加where子句,以消除这种可能性。也许你没有用浏览器连接到同一个数据库。是的,我肯定,因为我用另一个查询处理同一个数据库,其中我只返回一个对象。例如,第二个查询:@query(“match(p1:Person{nick:{0}})-[r:RATED]->(m:Movie)\n“+”return m”)设置userRatedMovies(字符串nick);然后:设置movies2=movieRepo.userRatedMoviesRatings(nick);Set movies=movieRepo.userRatedMovies(尼克);movies2集仅包含null,movies包含数据库中的节点。见:
    public interface <someName> extends PagingAndSortingRepository<#YourCustomClass,Long>