Spring декларативное управление транзакциями с сервером Neo4j - PullRequest
0 голосов
/ 03 октября 2019

Мы работаем над проектом с Spring Boot 2, Kotlin и neo4j server в качестве нашего хранилища данных. Я просто играл с аннотацией Spring @Transactional. После довольно продолжительного исследования Интернета я обнаружил, что нет поддержки транзакций Spring с сервером Neo4j (Rest API), он поддерживает только встроенный Neo4j.spring-boot-starter-data-neo4j, используемый для настройки neo4j

Мой код выглядит следующим образом

class ServiceImpl{

   @Throws(Throwable::class)
   @Transactional(rollbackFor = [Exception::class])
   public void create() {
       // Code for saving entity
       throw Exception("Failed to save") // Throwing exception intentionally to check rollback
   }
}

Сохраненная сущность не откатывается даже после возникновения исключения. Тот же код работает нормально, если база данных выбрана в POSTGRES. Однако это не работает с сервером Neo4j, если вы используете rest api для neo4j. Интернет говорит, что поддержка только для встроенного neo4j. Есть ли другой способ эффективной обработки транзакций. Я знаю, что есть программное управление транзакциями Springs, но это был бы утомительный подход.

Любые предложения по этому вопросу будут очень полезны. Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...