Я использую встроенную базу данных Neo4J OGM для хранения и загрузки репозитория из файловой системы.
Сохранение данных в БД уже работает хорошо, но загрузка их обратно в объектную модель имеет свои трудности.
Я столкнулся со следующим поведением:
NeoRepository repo = neoSession.load(NeoRepository.class, 0L); <-- STEP 1
/** load associations */
neoSession.loadAll(NeoAssociation.class, 4); <-- STEP 2
Код загружает весь Репозиторий с использованием глубины по умолчанию, которая просто загружает несколько дочерних объектов, но, что интересно, не всеих.Некоторые отношения остаются пустыми.Следовательно, я должен загрузить другие дочерние объекты вручную.
На следующем рисунке видно состояние после STEP1 .Репозиторий в основном загружен, включая функции и модули (70 элементов), но дочерние объекты Associations не были загружены.
Для загрузки Ассоциации , STEP2 пытается загрузить все из них вручную, используя Loadall .На следующем рисунке показан результат строки STEP2:
Как видите, пока загружено Association , всеколлекции были заменены.Размер модулей больше не 70 предметов, а только один предмет.Коллекция функций была заменена, но ее элементы остались прежними.
Это поведение совершенно непредсказуемо для меня.Может ли кто-нибудь помочь и пролить свет на эти проблемы?
Большое спасибо!