确保枚举中的方法存在于 jQAssistant
Ensure that a method in an enum exists with jQAssistant
我想确保所有枚举都有一个名为 findByAttribute
的静态方法。
我可以select方法
MATCH (enum:Enum) - [:DECLARES] -> (method:Method)
WHERE method.static = true
AND method.name = "findByAttribute"
RETURN enum.name, method.name
现在我想反转方法selection 的条件。我试过 NOT EXITS
但没有用。
首先,这里是您可以使用的所有 operators,以及如何使用它们
最简单的方法是使用气泡对您的逻辑进行分组。 (这可能是读一读最容易理解的)
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 只是检查是否设置了 属性,所以在这里并不适用,因为它可以设置。
假设你的意思是 "WHERE this method doesn't exist",你不能进行模式匹配(从 return 中删除 method.name 因为没有逻辑的方式将它包含在这个版本的查询中)
MATCH (enum:Enum)
WHERE NOT (enum) - [:DECLARES] -> (:Method {static:true, name:"findByAttribute"})
RETURN enum.name
提取上一个答案的最后一个问题并稍微更正一下:
MATCH
(enum:Enum:Type)
WHERE NOT
(enum)-[:DECLARES]->(:Method {static:true, name:"findByAttribute"})
RETURN
enum.fqn
我想确保所有枚举都有一个名为 findByAttribute
的静态方法。
我可以select方法
MATCH (enum:Enum) - [:DECLARES] -> (method:Method)
WHERE method.static = true
AND method.name = "findByAttribute"
RETURN enum.name, method.name
现在我想反转方法selection 的条件。我试过 NOT EXITS
但没有用。
首先,这里是您可以使用的所有 operators,以及如何使用它们
最简单的方法是使用气泡对您的逻辑进行分组。 (这可能是读一读最容易理解的)
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 只是检查是否设置了 属性,所以在这里并不适用,因为它可以设置。
假设你的意思是 "WHERE this method doesn't exist",你不能进行模式匹配(从 return 中删除 method.name 因为没有逻辑的方式将它包含在这个版本的查询中)
MATCH (enum:Enum)
WHERE NOT (enum) - [:DECLARES] -> (:Method {static:true, name:"findByAttribute"})
RETURN enum.name
提取上一个答案的最后一个问题并稍微更正一下:
MATCH
(enum:Enum:Type)
WHERE NOT
(enum)-[:DECLARES]->(:Method {static:true, name:"findByAttribute"})
RETURN
enum.fqn