java - Node 不会持久化到 Neo4j

标签 java neo4j spring-data-neo4j

我有一个角色节点,其中包含一些我试图保留到 Neo4j 中的权限。当我构造对象时,我看到权限存在,但在保存调用之后它们消失了。

这是我的角色节点:

@NodeEntity
public class Role {

    @GraphId Long id;
    private RoleType roleType;

    //@RelatedToVia(type="HAS_ROLE", direction=Direction.OUTGOING)
    private List<Person> users;

    private List<Privilege> defaultPrivileges;
    //private List<Task> tasks;


    public Role(){}

    public Role(RoleType roleType){
        this.roleType=roleType;
        this.defaultPrivileges=roleType.getDefaultPrivileges();
    }

}

这是我的保存:

admin= roleRepository.save(admin);

在我保存对象之前,它已完全填充,而在它为空之后。关于为什么会这样的任何想法

编辑: 导致问题的代码位于我的 Privilege 类中。

这不起作用:

public class Privilege {

    private String name;

    public Privilege(PrivilegeType pt) {
        this.name = pt.name();
    }
}

这有效:

 public class Privilege {

    private String name;

    public Privilege(String pt) {
        this.name = pt;
    }
}

为什么这会导致它无法持续存在?我的 RoleRepository 中缺少什么?

最佳答案

它在存储实体后重新加载实体,默认情况下它只加载相关信息的浅拷贝。

您可以使用template.fetch(role.users)template.fetch(role.tasks) 或者将 @Fetch 添加到任务列表中。

关于java - Node 不会持久化到 Neo4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27576005/

相关文章:

java - 从 firebase 在 auth OTP 中获取错误的应用程序名称

java - 找不到符号符号: class NestableRuntimeException location: package org. hibernate.exception

java - 如何列出 Maven 项目缺少的依赖项

neo4j - 使用 spring-data-neo4j 时删除节点也会删除关系,这与 cypher 默认不同

neo4j - 密码查询 : Assigning an aggregate value as a property of a relationship

python - 使用 py2neo (Neo4j) 自动递增属性?

java - 如何处理 ByteBuffer 中的索引越界异常

java - Java 类中的 Grails @Autowire 不起作用

java - "supernode"实体上的 Spring Data Neo4j 内存消耗

java - 删除neo4j中的多个节点及其关系