SDN4 Neo4j基类的继承和索引声明

时间:2017-08-26 19:51:14

标签: neo4j cypher spring-data-neo4j-4 neo4j-ogm

这是我的SDN 4实体:

Say

这是@NodeEntity public abstract class BaseEntity { @Index(unique = false) private Date createDate; .... } @NodeEntity public class Decision extends BaseEntity { .... } 输出:

:schema

我有以下Cypher查询:

Indexes
   ON :BaseEntity(createDate) ONLINE 

AFAIK(Neo4j SDN4 entity inheritance and indexes)这样就不会使用Neo4j索引MATCH (d:Decision) WHERE d.createDate={createDate} ,因为我正试图访问d节点:决策标签。

SDN 4是否有办法通过类继承定义索引(在:BaseEntity(createDate)级别保留createDate),以便能够在BaseEntity上使用createDate索引标签?

1 个答案:

答案 0 :(得分:1)

如果查询是派生的查找程序,则它与this issue相关。解决此问题的唯一方法是使用自定义@Query

如果查询是自定义@Query,您只需在查询中使用正确的标签,请注意您可以使用多个标签:

MATCH (d:Decision:BaseNode) 
WHERE d.createDate={createDate}

规划人员应该足够聪明,能够做正确的事情并使用索引,但是你应该使用PROFILE来验证。如果不使用USING INDEX提示:

MATCH (d:Decision:BaseNode) 
USING INDEX d:BaseNode(createDate)
WHERE d.createDate={createDate}