Neo4j:loadByProperty正在加载其他没有';不属于节点

Neo4j:loadByProperty正在加载其他没有';不属于节点,neo4j,spring-data-neo4j-4,Neo4j,Spring Data Neo4j 4,我的结构如下: 公司->拥有一组用户->每个用户拥有一组策略->每个策略针对一个公司 示例图形结构: u1 <- c1 -> u2 p1 -> c1 u1 -> p1 u1u2 p1->c1 u1->p1 公司(c1)有两个用户(u1、u2),一个策略(p1)属于公司(c1)。“u1”已采用策略(p1)。“u2”没有政策 当我试图通过“loadByProperty”方法加载u2时,应该是User2对象和相应的公司(c1)

我的结构如下:

公司->拥有一组用户->每个用户拥有一组策略->每个策略针对一个公司

示例图形结构:

       u1 <- c1 -> u2 
       p1 -> c1
       u1 -> p1 
u1u2
p1->c1
u1->p1
公司(c1)有两个用户(u1、u2),一个策略(p1)属于公司(c1)。“u1”已采用策略(p1)。“u2”没有政策

当我试图通过“loadByProperty”方法加载u2时,应该是User2对象和相应的公司(c1)

但是,策略(p1)也正在加载并设置为“u2”对象

阶级结构

Company{
   Stirng companyName;
   @Relationship(type = "hasUsers", direction = Relationship.OUTGOING)
   List<User> users;
}

User{
   Stirng userName;
   @Relationship(type = "hasPolicy", direction = Relationship.OUTGOING)
   List<Policy> policies;
}

Policy{
   String policyName;
   @Relationship(type = "forCompany", direction = Relationship.OUTGOING)
   Company company;
}
公司{
斯蒂恩公司名称;
@关系(type=“hasUsers”,direction=Relationship.OUTGOING)
列出用户名单;
}
使用者{
Stirng用户名;
@关系(type=“hasPolicy”,direction=Relationship.OUTGOING)
列出政策;
}
政策{
字符串policyName;
@关系(type=“forCompany”,direction=Relationship.OUTGOING)
公司;
}
检索用户的方法:

 public User getUser(String userName) { 
    Property<String, Object> properties = new Property<String, Object("userName", userName); 
    Set<User> users = (Set<User>) session.loadByProperty(User.class, properties); 
    if (users != null && !users.isEmpty()) 
        for (User user : users) 
            return user; 
   return null; 
 }
public用户getUser(字符串用户名){

Property properties=new Property可以通过多种方式按属性值加载实体

NEO4JOOperations

使用
loadByProperty
loadAllByProperty

派生查找程序(仅限存储库)


请共享一些代码公共用户getUser(字符串用户名){Property properties=new Property(“userName”,userName);Set users=(Set)session.loadByProperty(User.class,properties);if(users!=null&&!users.isEmpty())for(User:users)return user;return null;}请同时共享用户/公司/策略类更新的说明..请参见上文无法使用共享的代码复制此说明。请使用测试记录上的问题。请升级到使用4.0.0.RC1-属性不再可用,它现在称为Filter。
@Repository
public interface UserRepository extends GraphRepository<User> {

User findByName(String name); 

}
@Repository
public interface UserRepository extends GraphRepository<User> {

   @Query("MATCH (user:User{name:{0}}) RETURN user")
   User findUserByName(String name);

}
session.loadAll(Person.class, new Filter("firstName", "John"))