在Spring Data for ArangoDB中,如何在不显式定义“边”的情况下为n:m关系建模?

时间:2019-03-06 21:33:50

标签: arangodb

假设我有类似(缩写)

@Document
class Product {
   @Id String id;
   Set<Category> categories;
}

@Document
class Category {
   @Id String id;
}

我如何注释Product.categories字段以将其建模为n:m关系,而不必显式定义edges类?如果不可能的话,最佳做法是什么?

根据文档可以看到的

  • 不使用@Ref,仅用于非集合
  • 使用@Relations,它需要定义edges(似乎文档错误地引用了edge)。如果该关系仅是一个没有其他信息的关系,我觉得必须定义类似@Edge(name="relations") class Relation {}之类的东西很奇怪,但是也许我在这里遗漏了什么?
  • 使用@From或@To,这要求嵌套对象“在[Edge]批注[...]中描述的边缘集合中作为[单独]边缘文档存储”

换句话说,我想在Spring Data Neo4j中实现类似的功能,对我来说似乎更合理:

@NodeEntity
class Product {
   @Id String id;
   @Relationship(type = "IS_A")
   Set<Category> categories;
}

@NodeEntity
class Category {
   @Id String id;
}

Spring Data ArangoDB 3.1.0

0 个答案:

没有答案