V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
AJDX3906
V2EX  ›  问与答

Spring boot——Neo4J 查询的数据转实体出现错误

  •  
  •   AJDX3906 · 2022-03-30 23:44:34 +08:00 · 1095 次点击
    这是一个创建于 729 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在做一个 Neo4J 的小 demo

    Spring-boot version 2.4.1 Neo4j API version: SDN6+

    	@Query("MATCH (c:COOPER)-[r:relation]->(inv:Inventor) RETURN collect(c.name) as coop, collect(r.num) as num,inv.name as king LIMIT 25")
    	List<Coop2Inv> QueryRelation();
    

    在使用 @Query 时,需要把查到的数据存到对象中,总是出现如下错误:

    Could not find mappable nodes or relationships inside Record
    

    但在低版本 API 中使用 @QueryResult 注释实体就不会出现问题。

    类似的问题在 Neo4J 社区中也没有答案: https://community.neo4j.com/t/issue-when-retrieving-result-from-neo4jrepository/34966/4

    所以该怎么获取数据呢?

    2 条回复    2022-03-31 19:11:43 +08:00
    15855pm
        1
    15855pm  
       2022-03-31 17:07:50 +08:00
    前段时间我刚好遇到过这个问题,这是官方给的新的解决方案: https://docs.spring.io/spring-data/neo4j/docs/current/reference/html/#projections ,但是这个方案满足不了复杂的自定义查询结果。最后还是用的 Neo4jClient 自己做实体映射,这是官方文档: https://docs.spring.io/spring-data/neo4j/docs/6.0.15/reference/html/#neo4j-client
    AJDX3906
        2
    AJDX3906  
    OP
       2022-03-31 19:11:43 +08:00 via Android
    @15855pm 谢谢!看来只能使用 Neo4jClient 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   956 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:47 · PVG 05:47 · LAX 14:47 · JFK 17:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.