Я использую spring-data-neo4j V4 и ищу решение, как получить объекты, которые напрямую не связаны с загруженным объектом. Чтобы объяснить:Данные весны Neo4j fetch отношения
У меня есть 3 объекта в моей базе данных neo4j.
@NodeEntity(label="membership")
public class Membership extends AbstractEntity{
public Membership(){ }
private String membershipId;
@Relationship(type = "IN_YEAR", direction = Relationship.OUTGOING)
private Set<Year> year = new HashSet<>();
//getter+setter
}
@NodeEntity(label="year")
public class Year extends AbstractEntity{
public Year(){}
private String name;
private String membershipId;
@Relationship(type = "IN_MONTH", direction = Relationship.OUTGOING)
private Set<Month> month = new HashSet<>();
//getter+setter
}
@NodeEntity(label="month")
public class Month extends AbstractEntity{
private String name;
//getter+setter
}
Когда я называю мой MembershipRepository
и загрузить Membership
по Id:
membershipRepository.findByMembershipId(id);
в year
объекты будут извлекаться но month
сущности нет. Может ли кто-нибудь сказать, что является лучшим или рекомендуемым способом для загрузки объектов month
при загрузке объекта membership
? Как указано в http://docs.spring.io/spring-data/neo4j/docs/current/reference/html/, @Fetch
устарел с версии 4, поэтому мне нужно другое решение.
EDIT: Я прочитал в http://docs.spring.io/spring-data/neo4j/docs/current/reference/html/ обходной путь для извлечения, просто использовать load
методы из Neo4jTemplate
. Так я загружаю месяцы за каждый год по:
Set<Year> fetchedYear = new HashSet<>();
for(Year year : ms.getYear()){
fetchedYear.add(neo4jTemplate.load(Year.class, year.getId(), 1));
}
ms.setYear(fetchedYear);
Но есть лучшее решение?