spring-data-neo4j 中的深度注释不起作用吗?

Is depth annotation in spring-data-neo4j not working?

希望你能帮到我:

目标

我的目标是获取与其直接相邻的实体。

设置

假设我有 Person Class:

@NodeEntity(label = "Person")
public class Person {

    ...

    @Relationship(type = "HAS_FRIEND")
    private Person friend;

    ...
}

这是我的 PersonRepository:

public interface PersonRepository extends Neo4jRepository<Person, Long> {

    Person findByName(String name);

}

现在假设我有 4 个人
吉姆、鲍勃、爱丽丝、彼得
他们是这样相关的:Jim HAS_FRIEND Bob HAS_FRIEND Alice HAS_FRIEND Peter

我的期望

深度为 1:

当调用 findByName("Jim") 时,它应该 return 一个具有

的 Person 实例

实际

我得到一个包含所有孙子的 Person 实例
吉姆
Jim.friend => 鲍勃
Bob.friend => 爱丽丝

Jim.getFriend().getFriend().getFriend() => 彼得

到目前为止我尝试了什么

  1. 使用 @Depth(value = 2) 无效,return 会像 Actual
  2. 尝试使用 QueryParam 注释:
    @Query("MATCH " +
         "(p:Person {name:{name}})" +
         "Return p")
  1. @JsonIgnoreProperties 是没有选择的,因为我在其他情况下需要这个链

编辑

我正在使用spring-boot-starter-data-neo4j version 2.2.5
再次使用 spring-data-neo4j version 5.2.5

无法用我自己的测试设置重现该行为。也许在 neo4j 中处理旧数据?我不知道。

如果有人知道更多,欢迎回答