代码之家  ›  专栏  ›  技术社区  ›  alexanoid

SDN4 Neo4j基类继承和索引声明

  •  0
  • alexanoid  · 技术社区  · 7 年前

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

    这是 :schema

    Indexes
       ON :BaseEntity(createDate) ONLINE 
    

    我有以下密码查询:

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

    阿法克( Neo4j SDN4 entity inheritance and indexes :BaseEntity(createDate) 不会使用,因为我正在尝试在:决策标签上到达d节点。

    createDate BaseEntity 级别),以便能够使用 索引打开 :Decision

    1 回复  |  直到 7 年前
        1
  •  1
  •   FrantiÅ¡ek Hartman    7 年前

    如果查询是 那么它与 this issue . 现在解决这个问题的唯一方法是使用自定义 @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}