2015-02-23 2 views
0

Я использую Neo4jOperations для запроса neo. Spring получает узел и его родительский узел, но также получает дочерние элементы родителя, который, очевидно, меня не интересует. Мне нужен только прямой родитель и дети узла.Spring neo4j template loading Рекурсивные узлы

@Repository 
public class PracticeAreaRepository { 

@Autowired 
Neo4jOperations template; 

public PracticeArea get(String uuid){ 
    PracticeArea practiceArea = template.findByIndexedValue(PracticeArea.class, "practiceAreaId", uuid).singleOrNull(); 
    template.fetch(practiceArea.getChildren()); 
    template.fetch(practiceArea.getParent()); 
    return practiceArea; 
} 
} 

PracticeArea.java

@NodeEntity 
public class PracticeArea { 

@GraphId 
private Long id; 

private String name; 

@Indexed 
@GraphProperty(propertyName = "practice_area_id") 
private UUID practiceAreaId; 

@RelatedTo(type = "HAS_PARENT_PRACTICE_AREA", direction = Direction.OUTGOING) 
PracticeArea parent; 

@RelatedTo(type = "HAS_CHILD_PRACTICE_AREA", direction = Direction.OUTGOING) 
Set<PracticeArea> children; 

/* Getters & Setters */ .... 
} 

Как остановить Spring Neo4j сделать это?

ответ

0

Тогда не называй:

template.fetch(practiceArea.getParent()); 

Или на самом деле, что вызов не должен принести это дети родителя, если этот родитель не был уже загружен в текущем потоке.

Смежные вопросы