【问题标题】:Spring Data Neo4j 4 and primary indexesSpring Data Neo4j 4 和主要索引
【发布时间】:2017-06-15 22:33:59
【问题描述】:

我正在尝试了解如何正确使用 SDN 4 中的主索引。

来自org.neo4j.ogm.annotation.Indexjavadoc:

Only one index per class hierarchy may be marked as primary.

是否意味着如果我有以下实体层次结构:

B extends A
C extends A

我无法在BC 这两个实体中添加以下索引定义:

@Index(unique = true, primary = true)
private Long id;

这个主索引只能添加到ABC实体?

或者如果我可以将主索引添加到它们两者中(BC),B.idC.id 可以保持相同的值.. 例如1

【问题讨论】:

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


    【解决方案1】:

    每个类层次结构中只有一个索引可以标记为主。

    这意味着您只能在一个类或其任何超类中拥有一个主索引。

    例如如果您有以下层次结构:

    class A
    class B extends A
    class C extends B
    

    您只能在 A、B 或 C 中拥有 1 个索引。

    在您的情况下,您可以在 A 或 B(或 B 和 C)中使用索引。

    区别是

    • 如果索引在 A 中,您将无法创建具有相同 id 的 B 和 C - 将创建 A 标签上的约束
    • 如果索引在 B 和 C 中,您可以创建具有相同 id 的 B 和 C,因为它将是 2 个单独标签上的 2 个单独约束。

    【讨论】:

    • 感谢您的回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多