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
我无法将以下索引定义添加到两个实体 B
和 C
中:
@Index(unique = true, primary = true)
private Long id;
此主索引只能添加到 A
或 B
或 C
实体?
或者如果我可以将主索引添加到它们中(B
和 C
),B.id
和 C.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 个独立约束。
我正在尝试了解如何在 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
我无法将以下索引定义添加到两个实体 B
和 C
中:
@Index(unique = true, primary = true)
private Long id;
此主索引只能添加到 A
或 B
或 C
实体?
或者如果我可以将主索引添加到它们中(B
和 C
),B.id
和 C.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 个独立约束。