gpt4 book ai didi

java - 在 Spring Data Neo4j 中查询关系

转载 作者:行者123 更新时间:2023-12-02 01:22:49 25 4
gpt4 key购买 nike

我正在设计一个信标网络,其中信标彼此相邻,使用 Neo4j 数据库,其中有一个实体和一个关系类。我需要检索两个信标之间的关系,但不知道如何进行。这是两个类

信标级

public class Beacon {
@Id
private String MAC;
private String description;
private String location;

@Relationship(type = "ADJACENT")
private List<Adjacent> adjacentList = new ArrayList<>();

public Beacon() {
}

public Beacon(String MAC, String description, String location) {
this.MAC = MAC;
this.description = description;
this.location = location;
}


public void addAdjacency(Adjacent adjacent){
if (this.adjacentList==null){
this.adjacentList=new ArrayList<>();
}
this.adjacentList.add(adjacent);
}

//Getters and Setters are excluded

}

相邻关系类

public class Adjacent {
@Id
@GeneratedValue
private Long id;

private int angle;
private int cost;

@StartNode
private Beacon startBeacon;

@EndNode
private Beacon endBeacon;

public Adjacent() {
}

public Adjacent(int angle, int cost, Beacon startBeacon, Beacon endBeacon) {
this.angle = angle;
this.cost = cost;
this.startBeacon = startBeacon;
this.endBeacon = endBeacon;
}
//Getters and Setters are excluded

}

我已经尝试创建存储库并检索,但即使查询在 Neo4j 浏览器中工作,它也不会在这里检索任何数据,只是空白括号。

public interface AdjacentRepository extends Neo4jRepository<Adjacent,Long> 
{
@Query("match (b:Beacon{MAC:\"f:f:f:f\"})-[a:ADJACENT]-(c:Beacon{MAC:\"r:r:r:r\") return a")
Adjacent findaRelationshipp();
}

非常感谢任何帮助。

最佳答案

您需要返回 *返回 a、b、c,以便 OGM 可以推断将查询响应映射到对象模型所需的所有详细信息.

查询在 Neo4j 浏览器中工作的原因是因为它会自动修改您的查询以扩展相邻路径,在本例中为 Beacon 对象。

关于java - 在 Spring Data Neo4j 中查询关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57403807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com