Java Spring Boot和Neo4j:返回节点和某个值时对象中为Null
当我尝试使用cypher查询返回节点和值(电影和该电影的用户分级)时,集合中的对象包含空值。若我在Neo4j浏览器中执行查询,一切看起来都正常,但在代码中,有空值。我不知道我在哪里犯了错误 存储库中的密码查询: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
@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>