使用Cypher命令时,我可以很容易地将数据保存到relationship中,但在Spring D中,我不知道如何从两个节点之间的relationship中保存和获取数据。这是我的例子:
类User
@NodeEntity
public class User {
private String username;
private String saltedPassword;
private String lastIp;
private boolean enabled;
private Profile profile;
@Relationship(type = "FOLLOWS")
private Set<User> followings;
@Relationship(type = "FOLLOWED_BY")
private Set<User> followers;
@Relationship(type = "HAS_POST")
private Set<Post> posts;
@Relationship(type = "HAS_COMMENT")
private Set<Comment> comments;
@Relationship(type = "HAS_VERITFICATION_TOKEN")
private Set<VerificationToken> verificationTokens;
}
VertificationToken类
@NodeEntity
public class VerificationToken {
@Id
@GeneratedValue(UUIDStringGenerator.class)
private String id;
private String token;
private long expiryDate;
@Relationship(type = "BELONG_USER")
private User user;
}
两个节点之间的这种关系是HAS_VERIFICATION_TOKEN。就像现在一样。我只能在User中保存一个集合,但如果我需要向此关系中添加数据,则不能。
有人能帮帮我吗?提前谢谢你。
发布于 2021-03-11 01:28:24
由于您使用的是Spring Data Neo4j 5(顺便说一句,它是而不是的最新主要版本),您可以引入一个@RelationshipEntity
类来对User
和VerificationToken
实体之间的关系进行建模:
@RelationshipEntity("HAS_VERIFICATION_TOKEN")
public class VerificationTokenOwnership {
@Id
@GeneratedValue
private Long id;
// add your extra properties here
@StartNode
private User user;
@EndNode
private VerificationToken token;
// getters and setters
}
然后,您的User
字段将变为:
@Relationship(type = "HAS_VERIFICATION_TOKEN")
private Set<VerificationTokenOwnership> verificationTokens;
注意:同时拥有HAS_VERIFICATION_TOKEN
和BELONG_USER
关系似乎有点奇怪,理想情况下应该只有其中之一。
https://stackoverflow.com/questions/66569273
复制相似问题