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

Spring Data Neo4j实体路径映射

古弘
2023-03-14
match p=(a:fakea)-[*]->(:fakeb) where a.aId = 1
return p;

返回两个路径:

{"start":"http://localhost:8180/db/data/node/593222","nodes":["http://localhost:8180/db/data/node/593222","http://localhost:8180/db/data/node/593223","http://localhost:8180/db/data/node/593224","http://localhost:8180/db/data/node/593225"],"length":3,"relationships":["http://localhost:8180/db/data/relationship/2489542","http://localhost:8180/db/data/relationship/2489543","http://localhost:8180/db/data/relationship/2489544"],"end":"http://localhost:8180/db/data/node/593225"}

{"start":"http://localhost:8180/db/data/node/593222","nodes":["http://localhost:8180/db/data/node/593222","http://localhost:8180/db/data/node/593223","http://localhost:8180/db/data/node/593226","http://localhost:8180/db/data/node/593227"],"length":3,"relationships":["http://localhost:8180/db/data/relationship/2489542","http://localhost:8180/db/data/relationship/2489545","http://localhost:8180/db/data/relationship/2489546"],"end":"http://localhost:8180/db/data/node/593227"}

我尝试了几种不同的映射方式,使用我在这里找到的信息:

Spring数据wth ne04j错误...检索路径时出错

public interface FakeRepository extends GraphRepository<FakeA> {

@Query("match p=(a:fakea)-[*]->(:fakeb) where a.aId = {0} return p;")
public EntityPath<FakeA, FakeB> getTree(Long aId);
public interface FakeRepository extends GraphRepository<FakeAbs> {

@Query("match p=(a:fakea)-[*]->(:fakeb) where a.aId = {0} return p;")
public EntityPath<FakeAbs, FakeAbs> getTree(Long aId);
Result<EntityPath<FakeAbs, FakeAbs>> path = fr.getTree(1l);
EntityPath<FakeAbs, FakeAbs> first = path.iterator().next();
first.endNode();
Null pointer:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause

java.lang.NullPointerException: null
    at org.springframework.data.neo4j.support.path.ConvertingEntityPath.endNode(ConvertingEntityPath.java:112)

当我试图检查EntityPath结构的任何其他部分(例如length())时,我会收到类似的空指针。

如何查询不同深度的树路径结构并将结果映射到正确的节点实体?我特别想要路径中包含的节点。

共有1个答案

谭富
2023-03-14

试试这个

而不是你现在拥有的:

public interface FakeRepository extends GraphRepository<FakeA> {

@Query("match p=(a:fakea)-[*]->(:fakeb) where a.aId = {0} return p;")
public EntityPath<FakeA, FakeB> getTree(Long aId);

使用:

public interface FakeRepository extends GraphRepository<FakeA> {

@Query("start p=node{0} match (p)-[*]->(a:fakea) return a;")
public FakeA getTree(FakeA fakeA);
 类似资料:
  • 本文向大家介绍Spring boot 路径映射的实现,包括了Spring boot 路径映射的实现的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了spring boot 路径映射的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在spring boot中集成thymeleaf后,我们知道thymeleaf的默认的html的路径为c

  • 问题内容: 我已经为我的Jersey应用程序配置了。不幸的是,这给我的应用中的常规上传服务带来了一些麻烦。 如果有人上传,扩展名将被删除。 有没有办法告诉Jersey跳过对此资源的过滤? 编辑 :peeskillet的答案后,我的假设得到确认。我已经提出了改进请求:https : //java.net/jira/browse/JERSEY-2780 问题答案: 首先,这绝不是错误。这是预期的行为。

  • 主要内容:Servlet 单一映射,Servlet 多重映射客户端通过 URL 地址来访问 Web 服务器中的资源,Servlet 程序若想被外界访问,就必须被映射到一个 URL 地址上。很多时候,该 URL 地址和 Servlet 程序的物理路径(在硬盘上的存储位置)并不一致,因此它被称为虚拟路径。Servlet 与虚拟路径的对应关系就叫做 Servlet 虚拟路径映射。 Servlet 虚拟路径映射可以被分为 2 类: 单一映射 多重映射 下面介绍如何

  • 快速总结我想要实现的目标。请给出实施或设计建议:) 我有两个表:用户,图像。在UserDO中,我希望保留一组所有用户的图像,以及单个图像,即用户的肖像(在我的示例中,该组将包括肖像): 在ImageDO中,我有一个userid作为外键来记录哪个用户上传了图像。但是它没有布尔值,因为认为一个用户可能会上传许多图像,但只有一个是肖像。 有什么方法可以实现这一点吗?或者我需要维护另一个表(例如,Port

  • 我有以下模式: 项目(ID,名称)项目用户(项目ID,用户ID)用户(名称,ID) 实体如下 显然是一对多。项目可以有多个用户。 现在,我的目标是编写jooq查询,在那里我可以获取已经有相应用户的项目对象。 但是当预期约15时,查询将恢复千分之一的结果

  • 我知道有很多关于映射请求数据的问题,但这两个都帮不了我。所以,我试图实现的是一个映射到lambda的APIendpoint。当bucket触发404时,将转发到该endpoint的请求,并且参数通过请求路径传递给lambda,例如:/{image_name}/{width}/{height}。lambda的代码只调用 在集成请求中,我创建了三个映射模板:plain/text、plain/html、