我们可以用spring将数据保存到neo4j中的relationship吗?

mbskvtky  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(358)

当使用cypher命令时,我可以很容易地将数据保存到关系中,但在spring d中,我不知道如何从两个节点之间的关系中保存和获取数据。这是我的例子:
类用户

@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;
}

类证书令牌

@NodeEntity
public class VerificationToken {
    @Id
    @GeneratedValue(UUIDStringGenerator.class)
    private String id;
    private String token;
    private long expiryDate;

    @Relationship(type = "BELONG_USER")
    private User user;
}

这两个节点之间的关系具有\u验证\u令牌。就像现在一样。我只能在user中保存一个集,但是如果我需要向这个关系添加数据,我就不能。
有人能帮我吗?先谢谢你。

q5lcpyga

q5lcpyga1#

由于您使用的是springdataneo4j5(顺便说一句,它不是最新的主要版本),因此可以引入 @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 理想情况下,你应该只拥有其中一种。

相关问题