Невозможно извлечь данные, которые были клонированы, используя apoc.refactor.cloneNodesWithRelationships в одной функции - PullRequest
0 голосов
/ 04 октября 2018

В настоящее время у меня есть эта проблема, когда я не могу извлечь дублированный узел после того, как узел клонирован, используя apoc.refactor.cloneNodesWithRelationships.Итак, мой структурный код выглядит следующим образом:

ObjectService:

function List<String> copyObject(param) {     
    objectRepository.copyUsingApoc(param); //This repo basically contains the apoc clone query & return the new cloned ids
}

function List<Object> findObjectByClonedIds(List<String> cloneIds) {
     objectRepository.findObjectByCloneIds(cloneIds); //Contains normal match query with where id in
}

AnotherService:

function copy(param) {
     List<String> cloneIds = objectService.copyUsingApoc(param);
     List<Objects> listClonedObjects = objectService.findObjectByClonedIds(cloneIds);

     .....
     //Other function that process the data from listClonedObjects
     .....
}

Fyi: обе службы имеют @ Transactional

Проблема здесь в том, что я не могу получить только что дублированный список listClonedObjects.Поэтому я делаю ошибку, когда пытаюсь получить доступ к вновь клонированным, потому что список пуст.Однако, когда я не получил данные (прокомментировал их) и позволил завершить транзакцию.Я могу найти правильно продублированные узлы в базе данных.Вопрос в том, могу ли я получить недавно клонированные данные во время выполнения транзакции?Я попытался отделить функцию от контроллера (при условии, что она перейдет в другую транзакцию и транзакция уже сброшена), но данные все равно не могут быть получены.Любой обходной путь или решение для этого случая?

Спасибо

...