Я создал расширение Neo4j. Он содержит мои собственные TransactionEventHandler
. Иногда выполнение его метода beforeCommit()
приводит к UniquePropertyConstraintViolationKernelException
. Все нормально. Но на стороне сервера я получаю ResultProcessingException
. Это исключение выглядит слишком обобщенным. Я думаю, это может быть брошено по многим причинам не только в случае нарушения ограничений. Итак, мой вопрос заключается в том, как я должен обрабатывать нарушения ограничений на стороне сервера? Я использую SDN4.Как правильно обрабатывать нарушение уникального ограничения в SDN4?
Edit 1: Все Neo4j-ogm- * версии обновлены до 2.0.3
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-core</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-http-driver</artifactId>
<version>2.0.3</version>
</dependency>
</dependencies>
</dependencyManagement>
Да, это правда. После обновления SDN до 4.1.1 я получаю CypherException. Описание содержит следующее сообщение: «TransactionFailureException: ошибка выполнения Cypher Transaction.CouldNotCommit». Но для меня все еще неясно, как я могу понять тип проблемы. Внутри TransactionEventHandler.beforeCommit() я получаю 'ConstraintViolationException' с четким описанием. Но на стороне сервера я ничего не вижу об этом. –
Отредактировано решение – Luanne
Спасибо! Но такая конфигурация вызывает еще одну проблему. Я заменил версии «neo4j-ogm-core» и «neo4j-ogm-http-driver», как вы сказали. И когда я пытаюсь вызвать 'neo4jOperations.query (« CREATE CONSTRAINT ON (n: Event) ASSERT n.uniqueId IS UNIQUE », Collections.emptyMap());' Я получаю 'NoSuchMethodError' с описанием следующим образом:" HttpClientBuilder.setSSLContext (SSLContext)». Он работал раньше. –