我正在使用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);
但有一个更好的解决办法?