Обеспечение отсутствия отношений в Neo4j - PullRequest
0 голосов
/ 15 мая 2018

В Neo4j, есть ли способ принудительно установить, что узел метки X не подключен к узлу метки Y?

Например, если кто-то попытался выполнить запрос, такойas:

MERGE (:X)-[:SOME_RELATIONSHIP]->(:Y)

будет ли способ гарантировать, что такой запрос не будет выполнен?

Спасибо!

1 Ответ

0 голосов
/ 16 мая 2018

Ограничения Neo4j в настоящее время не поддерживают существование или ограничение отношений, поэтому вам придется добавить дополнительную работу.

Если у вас есть процедуры APOC, вы могли бы зарегистрировать триггер , который можно было бы оценить, чтобы проверить, соединяется ли создаваемая связь с двумя узлами этих меток, и использовать apoc.util.validate(), чтобы сгенерировать ошибку, которая завершится ошибкой и откат транзакции.

Если вы хотите сделать это без APOC, это немного больше работы, так как вам нужно создать TransactionEventHandler, а затем расширение ядра для загрузки вашего обработчика событий. Вот запись в блоге об этом подходе .

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