【发布时间】:2016-08-18 14:11:13
【问题描述】:
我有User 实体;用户可以是多个组的成员,也可以是一个组织的成员。处理此类关系有多种选择:
- 类
User具有字段Set<Group> groups和Organization organization - 类
Group和Organization具有字段Set<User> users - 两个选项同时使用(双向关系)
另外,还有与指定方向的关系的注解:
Spring Data Neo4j 默认确保在任何两个给定实体之间只有一个给定类型的关系。此规则的例外情况是,当两个相同类型的实体之间的关系被指定为 OUTGOING 或 INCOMING 时。在这种情况下,两个实体之间可能有两个给定类型的关系,一个方向的关系。
如果你不关心方向,那么你可以指定 direction=Relationship.UNDIRECTED 这将保证路径 两个节点实体之间可从任一侧导航。
来源:Good Relationships: The Spring Data Neo4j Guide Book
只要我希望能够尽快获得用户组和组内的用户,我就完成了一种同时使用上面列出的两个选项以及将每个关系注释为 @ 的方法987654329@ 因为它看起来像通用方法。它有什么缺点吗?如果是这样,哪种方法会更好?
【问题讨论】:
标签: java neo4j spring-data-neo4j-4 neo4j-ogm