Во-первых, вот все операторы , которые вы можете использовать, и способы их использования
Самый простой способ - использовать пузыри для группировки вашей логики.(Это, вероятно, проще всего понять, прочитав один текст)
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
СУЩЕСТВУЕТ просто проверять, установлено ли свойство, поэтому на самом деле не применяется здесь, потому что его можно установить.
Предполагая, чтонаоборот, вы имели в виду «ГДЕ этот метод не существует», вы НЕ МОЖЕТЕ совпадать с шаблоном (вырежьте method.name из return, поскольку нет логического способа включить его в эту версию запроса)
MATCH (enum:Enum)
WHERE NOT (enum) - [:DECLARES] -> (:Method {static:true, name:"findByAttribute"})
RETURN enum.name