在 Spring Data Neo4j 中查询关系

我正在设计一个信标网络,其中信标彼此相邻,使用 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();

}

任何帮助是极大的赞赏。


慕勒3428872
浏览 174回答 1
1回答

犯罪嫌疑人X

您需要return *,否则return a, b, cOGM 可以推断出将查询响应映射到您的对象模型所需的所有详细信息。查询在 Neo4j 浏览器中起作用的原因是因为它会自动修改您的查询以扩展相邻路径,在本例中为 Beacon 对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java