Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Neo4j弹簧关系不能水合,它在findAll()之后起作用_Java_Neo4j_Spring Data - Fatal编程技术网

Java Neo4j弹簧关系不能水合,它在findAll()之后起作用

Java Neo4j弹簧关系不能水合,它在findAll()之后起作用,java,neo4j,spring-data,Java,Neo4j,Spring Data,我是neo4j+弹簧数据的新手 我想按节点查询关系 获取关系的查询 @Query("MATCH p=(k:KEYWORD)-[r:KW_VERB]-() where id(k)= {0} return r ") public List<KeywordVerb> findByStartNode(long id); @Query(“匹配p=(k:关键字)-[r:KW\u动词]-()其中id(k)={0}返回r”) 公共列表findByStartNode(长id); 调用此方法时,失败

我是neo4j+弹簧数据的新手

我想按节点查询关系

获取关系的查询

@Query("MATCH p=(k:KEYWORD)-[r:KW_VERB]-() where id(k)= {0} return r ")
public List<KeywordVerb> findByStartNode(long id);
@Query(“匹配p=(k:关键字)-[r:KW\u动词]-()其中id(k)={0}返回r”)
公共列表findByStartNode(长id);
调用此方法时,失败:

由于一个或多个必需的节点类型未映射到实体类,因此无法水合GraphEntityMapper-关系(7985)-[KW\U动词]->(7986)

但是我在findAll()之后使用相同的函数,它可以工作

Iterable<KeywordVerb> keywordVerbs2 = keywordVerbDao.findAll();
List<KeywordVerb> keywordVerbs = keywordVerbDao.findByStartNode((long) 7985);
Iterable关键字verbs2=keywordVerbDao.findAll();
List keywordVerbs=keywordVerbDao.findByStartNode((长)7985);

错误消息表示关系r的开始和/或结束节点未在当前会话中映射。调用
findAll()
后,节点被加载到会话中,并且可以映射它们

要解决此问题,只需返回带有关系的开始和结束节点:

MATCH p=(k:KEYWORD)-[r:KW_VERB]-(n) WHERE ID(k)= {0} RETURN r,k,n
或者使用
startNode
endNode
函数,如果您觉得这更容易阅读:

MATCH p=(k:KEYWORD)-[r:KW_VERB]-(n) WHERE ID(k)= {0} 
RETURN r,startNode(r),endNode(r)

我不确定,我删除了findAll()并改为findOne(),它是工作状态。是的,为
findAll
findOne
生成的所有查询都返回所需的节点和关系-这就是它工作的原因。