我有一个角色节点,其中包含一些我试图保留到 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/