Не работает ли аннотация глубины в spring-data-neo4j? - PullRequest
0 голосов
/ 23 марта 2020

Надеюсь, вы сможете мне помочь:

Цель

Моя цель - вызвать сущность с ее непосредственным соседом.

Настройка

Скажите, у меня есть Person Класс:

@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 человека
Джим, Боб, Алиса, Питер
И они связаны следующим образом: Джим HAS_FRIEND Боб HAS_FRIEND Алиса HAS_FRIEND Питер

Что я ожидаю

Глубина 1:

При вызове findByName ("Jim") он должен вернуть экземпляр Person с

  • name => "Jim"
  • friend => экземпляр Person с именем "Bob"
  • bob.friend => null

Actual

Я получаю экземпляр Person со всеми внуками
Джим
Jim.friend => Боб
Bob.friend => Алиса

Jim.getFriend (). GetFriend (). GetFriend () => Питер

Что я пытался до сих пор

  1. Использование @Depth(value = 2) не работает, будет возвращаться как Фактический
  2. Пробовал с Query и Param аннотацией:
    @Query("MATCH " +
         "(p:Person {name:{name}})" +
         "Return p")
@JsonIgnoreProperties не вариант, потому что мне нужна эта цепочка в других случаях

Редактировать

Я использую spring-boot-starter-data-neo4j version 2.2.5
, который снова использует spring-data-neo4j version 5.2.5

1 Ответ

0 голосов
/ 27 марта 2020

Не удалось воспроизвести поведение с моей собственной настройкой теста. Может работать на старых данных в neo4j? Я не знаю.

Если кто-то знает что-то еще, не стесняйтесь отвечать

...