В настоящее время у меня есть эта проблема, когда я не могу извлечь дублированный узел после того, как узел клонирован, используя 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.Поэтому я делаю ошибку, когда пытаюсь получить доступ к вновь клонированным, потому что список пуст.Однако, когда я не получил данные (прокомментировал их) и позволил завершить транзакцию.Я могу найти правильно продублированные узлы в базе данных.Вопрос в том, могу ли я получить недавно клонированные данные во время выполнения транзакции?Я попытался отделить функцию от контроллера (при условии, что она перейдет в другую транзакцию и транзакция уже сброшена), но данные все равно не могут быть получены.Любой обходной путь или решение для этого случая?
Спасибо