我刚刚开始阅读和玩图db,尤其是Neo4j。
但是我没有遇到用例的解决方案,在我看来这很常见。假设我的系统中有User对象,并且我想维护用户之间的关系。 例子:
我想动态存储关系(节点之间的边缘),而不是创建带有所有可能的关系实体的实体,并带有注释@Relationship。
稍后,我希望获得一个用户及其所有联系,但需要在运行时找出这种关系的类型。
弹簧数据有可能吗?还是根本无法使用Neo4j?
如果您能为我提供一些解决我问题的方法,我将不胜感激。
谢谢。
答案 0 :(得分:0)
在您查询全部之后,似乎您只对关系的类型感兴趣,对吧?
您可以使用@RelationshipEntity
并向其添加属性以定义其类型。
@RelationshipEntity(type = "USER_RELATION")
public class UserRelation {
//... @StartNode/@EndNode/@Id
private String type; // Here goes sibling, parent, etc.
}
在您的User
实体中,您只需定义一个关系即可。
@Entity
public class User {
// ... id, etc.
@Relationship(type = "USER_RELATION")
private List<UserRelation> userRelations;
}
这将始终查询与另一个用户的每个传出连接。