Надеюсь, вы сможете мне помочь:
Цель
Моя цель - вызвать сущность с ее непосредственным соседом.
Настройка
Скажите, у меня есть 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 () => Питер
Что я пытался до сих пор
- Использование
@Depth(value = 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