Убедитесь, что метод в перечислении существует с jQAssistant
Я хочу убедиться, что все перечисления имеют статический метод с именем findByAttribute
,
Я могу выбрать метод по
MATCH (enum:Enum) - [:DECLARES] -> (method:Method)
WHERE method.static = true
AND method.name = "findByAttribute"
RETURN enum.name, method.name
Теперь я хочу изменить условие выбора метода. Я старался NOT EXITS
но это не сработало.
2 ответа
Во-первых, вот все операторы, которые вы можете использовать, и как их использовать
Самый простой способ - использовать пузыри для группировки вашей логики. (Это, вероятно, легче всего понять, прочитав один текст)
MATCH (enum:Enum) - [:DECLARES] -> (method:Method)
WHERE NOT (method.static = true
AND method.name = "findByAttribute")
RETURN enum.name, method.name
Следующая лучшая вещь NOT (A and B)
знак равноNOT A OR NOT B
MATCH (enum:Enum) - [:DECLARES] -> (method:Method)
WHERE NOT method.static = true
OR NOT method.name = "findByAttribute"
RETURN enum.name, method.name
или используя оператор неравенства <>
вместо инвертирования логического
MATCH (enum:Enum) - [:DECLARES] -> (method:Method)
WHERE method.static <> true
OR method.name <> "findByAttribute"
RETURN enum.name, method.name
EXISTS просто проверяет, установлено ли свойство, поэтому здесь его нельзя применить, потому что оно может быть установлено.
Предполагая обратное, вы имели в виду "ГДЕ этот метод не существует", вы НЕ МОЖЕТЕ совпадать с шаблоном (вырежьте method.name из return, так как нет логического способа включить его в эту версию запроса)
MATCH (enum:Enum)
WHERE NOT (enum)-- [:DECLARES] -> (method:Method {static:true, name:"findByAttribute"})
RETURN enum.name
Взять последний запрос предыдущего ответа и немного его исправить:
MATCH
(enum:Enum:Type)
WHERE NOT
(enum)-[:DECLARES]->(:Method {static:true, name:"findByAttribute"})
RETURN
enum.fqn