我正在使用spring-data-neo4j V4並尋找解決方案如何獲取不直接連接到已加載實體的實體。解釋:Spring數據Neo4j獲取關係
我在我的neo4j數據庫中有3個實體。
@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
通過編號:
membershipRepository.findByMembershipId(id);
的year
實體將是牽強,但month
實體沒有。 任何人都可以告訴加載membership
實體時加載month
實體的最佳或推薦方式是什麼?正如http://docs.spring.io/spring-data/neo4j/docs/current/reference/html/中所述,@Fetch
自從版本4開始已經過時,所以我需要另一種解決方案。
編輯: 我http://docs.spring.io/spring-data/neo4j/docs/current/reference/html/閱讀獲取解決方法,只是用從Neo4jTemplate
的load
方法。 所以我通過加載個月,每年:
Set<Year> fetchedYear = new HashSet<>();
for(Year year : ms.getYear()){
fetchedYear.add(neo4jTemplate.load(Year.class, year.getId(), 1));
}
ms.setYear(fetchedYear);
但有一個更好的解決辦法?