这个问题是如何识别所有实现不扩展某些基类的特定接口的类的延续?.
那里接受的答案建议使用:
MATCH
(i:Interface {name:'Action'} )<-[:IMPLEMENTS|EXTENDS*1..10]- (class),
(abstractAction:Class {name:'AbstractAction'})
where not (class)-->(abstractAction)
RETURN class
这很好用,并给出了符合该条件的类列表。
我唯一的问题是:该接口的名称Action
(惊讶)模棱两可。绝对类名com.whatever.foo.bar.Action
是。但是,当我将查询更改为使用时,{name:'com.whatever.foo.bar.Action'}
我得到一个空结果。
然后我尝试{package:'com.whatever.foo.bar' name:'Action'}
了,但这不起作用:
查询中的属性名称之一在数据库中不可用,请确保您没有拼错它,或者当您在应用程序中运行此语句时标签可用(缺少的属性名称是:package)
有没有办法将搜索结果减少到我真正关心的那个Action 界面?