1

可以说我有以下数据模型:

public class A {

    @Indexed(indexType = IndexType.FULLTEXT, indexName = "property1")
    String property1;
}

public class B extends A {

    @Indexed(indexType = IndexType.FULLTEXT, indexName = "property2")
    String property2;
}

我可以告诉 Spring 框架以property1不同的索引名称索引 B 类吗?如果没有,在这种情况下你会怎么做?我的意思是,如果你有几个类都扩展同一个基类,但同时,这些类从基类继承的所有属性都应该被索引,你会怎么做。我只能在基类中注释这些属性以进行索引,这是非常有限的。我能做些什么?

谢谢。

4

2 回答 2

2

索引定义注释中的level属性可以设置为Level.INSTANCE. 如需更多帮助,请参阅此处的 spring-data-neo4j文档

这是文档的摘录:

如果在超类中声明了一个字段,但子类需要不同的索引,则 level 属性声明将用作索引的内容。Level.CLASS 使用声明字段的类,Level.INSTANCE 使用提供的或实际实体实例的类。

于 2013-04-30T17:44:04.393 回答
0

我不认为这是可能的。您property1将始终在 index 中被索引property1。能够在单个字段上指定多个索引可能会解决您的问题,但目前还不可能。前段时间,我为此提出了一个问题,但尚未实施。

如果你真的想要一个域(实体)对象方法,你也可以选择域实体方法。它与 Spring 或 Spring Data Neo4j 无关,但它也可以解决问题。通过以这种方式手动处理实体,您还可以自己管理索引,从而获得所需的所有灵活性。

只是一个问题,为什么要为每个子类指定不同的索引?

于 2013-04-30T13:54:39.813 回答