Я использую neo4j-ogm 3.1.5 в моем проекте.
В моем коде, когда я выбираю любую сущность отношения с depth = 1
, она выбирает startNode и endNode, а также извлекает отношения startNode и endNode.По сути, это параметр глубины, работающий как depth = depth + 1
, потому что то же значение глубины передается узлам при извлечении объекта отношения.
AFAIK понимает, что параметр глубины используется в основном как загрузка LAZY или EAGER в спящем режиме.В SchemaRelationshipLoadClauseBuilder
классе это происходит в методе
public String build(String variable, String label, int depth)
Шаги для воспроизведения
Извлечение сущности отношения с использованием findById
method
Текущая реализация
В SchemaRelationshipLoadClauseBuilder
следующий метод:
public String build(String variable, String label, int depth)
- вызывает
expand(sb, "n", start, depth)
вместо expand(sb, "n", start, depth-1)
, И - вызывает
expand(sb, "m", end, depth)
вместо expand(sb, "m", end, depth-1)
.
Дело в том, что это вызовет проблему в моем проекте, так как startNode и endNode соответствующего объекта отношения могут иметь более 100 000 отношений одного вида, и выборка всех этих отношений займетпамять устройства.
Кто-нибудь может объяснить, почему это так?