【发布时间】:2012-01-29 11:52:31
【问题描述】:
我最近开始探索图形数据库,并决定更多地使用 neo4j。我知道 neo4j DB 中的节点和边是任意的,并且可以将一个或多个属性(键值对,其中的值必须是原始类型)分配给节点和关系。
有没有办法让我自己的类的对象成为节点和边,以便节点和边的属性被封装在对象本身中?
【问题讨论】:
-
欢迎来到 SO!下面的答案解决了您的问题,请点击答案旁边的复选标记将其标记为已接受。
标签: neo4j
我最近开始探索图形数据库,并决定更多地使用 neo4j。我知道 neo4j DB 中的节点和边是任意的,并且可以将一个或多个属性(键值对,其中的值必须是原始类型)分配给节点和关系。
有没有办法让我自己的类的对象成为节点和边,以便节点和边的属性被封装在对象本身中?
【问题讨论】:
标签: neo4j
您的意思是一种对象图映射方式?
您可以查看Spring Data Neo4j 或其他映射方法,例如jo4neo 或TinkerPop Frames。
来自 Spring Data Neo4j 的示例
@NodeEntity class Person {
@GraphId Long id;
String name;
Person spouse;
@RelatedTo
Set<Person> friends;
@Query("start me = node({self}) match me-[:friends]->friends-[:friends]->foaf return foaf")
Set<Person> friendsOfFriends;
}
【讨论】: