我最近开始探索图形数据库,我决定使用neo4j进行更多工作。我知道neo4j DB中的节点和边是任意的,并且可以将一个或多个属性(键值对,其中值必须只是基本类型)分配给节点和关系。
有没有办法让我自己的类的对象作为NODES和EDGES,以便节点和边缘的属性被封装在对象本身中?
答案 0 :(得分:3)
你的意思是一种对象图映射方式吗?
您可以查看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;
}