Spring Data Neo4j 4和主要索引

时间:2017-06-15 22:33:59

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

我试图了解如何在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

1 个答案:

答案 0 :(得分:2)

  

每个类层次结构只能将一个索引标记为主要索引。

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

E.g。如果您有以下层次结构:

class A
class B extends A
class C extends B

你只能有一个索引,包括A,B或C.

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

区别在于

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