当前位置: 首页 > 知识库问答 >
问题:

未找到NodeImpl#0的Spring数据Neo4j-“_类型”属性

吕嘉赐
2023-03-14

我正试图借助java应用程序中的spring数据来使用neo4j。目前我面临一个奇怪的问题。以下是场景。

I have:
1. Two UserNode, say A and B, where "UserNode" is java @NodeEntity class. 
2. A @RelationshipEntity "RequestedTo" which i again a java class. 
3. A relationship "A RequestedTo B" which i directed towards B.

现在,当我尝试获取所有具有指向B的RequestedTo关系的UserNode时,我得到以下异常

Caused by: org.neo4j.graphdb.NotFoundException: '__type__' property not found for NodeImpl#0.
    at org.neo4j.kernel.impl.core.Primitive.newPropertyNotFoundException(Primitive.java:184)
    at org.neo4j.kernel.impl.core.Primitive.getProperty(Primitive.java:179)
    at org.neo4j.kernel.impl.core.NodeImpl.getProperty(NodeImpl.java:52)
    at org.neo4j.kernel.impl.core.NodeProxy.getProperty(NodeProxy.java:155)
    at org.springframework.data.neo4j.support.typerepresentation.AbstractIndexingTypeRepresentationStrategy.readAliasFrom(AbstractIndexingTypeRepresentationStrategy.java:106)

在这里,我使用Spring中提供的GraphRespository接口对neo4j执行以下查询。

START user=node:searchByMemberID(memberID={0}) , member=node(*), root = node(0) MATCH user<-[r:RequestedTo]-member WHERE member <> root RETURN member

另外,当我在neoclipse中启动此查询时,我可以看到结果中的UserNode上没有“type”属性。但是,当我在neo4j浏览器控制台中尝试此查询时,我可以看到结果集中出现了“type”属性。

共有3个答案

罗渝
2023-03-14

我犯了与OP相同的错误:

'__type__' property not found for NodeImpl#0

并通过使用has关键字检查\uuuuu type\uuuu属性的存在性来解决此问题。

更明确地说,此请求会引发错误:

@Query(value = "start n=node(*) where not (n)-[:hasParent]->() return n")
Set<MyNodeType> findRootNodes();

但是这个请求行得通:

@Query(value = "start n=node(*) where has(n.__type__) and not (n)-[:hasParent]->() return n")
Set<MyNodeType> findRootNodes();

希望这能帮助别人。

陶乐生
2023-03-14

您不需要在start中指定member,cypher会自行处理。毕竟,从一个或几个起点进行的所有本地查询都是graph数据库的核心内容:

START user=node:searchByMemberID(memberID={0})
MATCH user<-[r:RequestedTo]-member 
RETURN member
姜嘉赐
2023-03-14

我只是玩了一点Neo4j,但试试这个:

START user=node:searchByMemberID(memberID={0}) , member=node(*)
MATCH user<-[r:RequestedTo]-member 
WHERE id(member) <> 0 
RETURN member
 类似资料:
  • 我正在尝试将现有项目转换为使用Spring数据和Neo4j,但我遇到了一些问题。当我尝试生成项目时,我得到以下异常: 我似乎找不到任何关于为什么会出现这个错误的好信息,我也不确定到底是什么导致了这个错误。 以下是大部分超节点类: 它源自AbstractMapValues类: 如您所见,这些旨在表示地图中的点。我的项目中有一个 Neo4j 空间依赖关系,它应该允许我使用索引类型.POINT。 然后我

  • 我有以下实体: 然后我创建我的存储库: 但我一开始就收到: 未找到MyTable类型的属性getCountOf 我到底做错了什么?

  • 我尝试使用QueryDSL学习Spring Data JPA教程 我的代码版本如下:spring-boot=1.3.8。release query-dsl=3.7.4 我的存储库如下 当我编译和构建代码时,下面的错误是show 我的错误与下面问题中给出的类似,但问题是它不是答案 https://stackoverflow.com/A/37800554/5192019

  • 我确实有一个存储库 没有定义自定义方法。因此,我使用了类似的,它们是预定义的。 我的课程如下 带字段的getter。 目前,我能够将这样的Pois保存到neo4j并将其检索回来,但是当我试图通过cypher处理数据库中的这些节点时,似乎这些字段没有映射到neo4j属性。 我以为spring-data-neo4j会将我的类字段转换为neo4j图形属性。我错了吗? 注意:调用似乎工作得很好。之后,我可

  • 我最近开始使用ReactiveCouchbase Repository(sping-data-Couchbase-3.0.0。M2,Spring-引导-启动器-父-2.0.0。M2)在我们的一个项目中。 我从这里引用了未发布的文档并设置了项目,但我得到了以下错误。 以下是关于设置我的项目的相关信息。 @Maven @爪哇 现在,我确实经历了这个和这个,但在这里,我没有在DummyRepositor

  • 这应该是一个关于我可能在SpringData文档中遗漏的东西的简单问题。 我正在尝试实现一个存储库扩展,如下所述:http://docs.spring.io/spring-data/data-neo4j/docs/3.0.2.RELEASE/reference/html/programming-model.html#d0e2970. 代码非常简单。我只有一个存储库和一个扩展接口(和实现)。 首先是