Spring 数据 Neo4j 4 和主要索引

Spring Data Neo4j 4 and primary indexes

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

来自 org.neo4j.ogm.annotation.Index javadoc:

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

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

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

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

class A
class B extends A
class C extends B

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

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

区别是

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