我的结构如下:
一家公司 -> 拥有一组用户 -> 每个用户都有一组政策 -> 每个政策都适用于一家公司。
示例图结构:
u1 <- c1 -> u2
p1 -> c1
u1 -> p1
公司 (c1) 有两个用户 (u1, u2) 并且策略 (p1) 属于公司 (c1)。“u1”已采取策略(p1)。“u2”没有策略。
当我尝试通过“loadByProperty”方法加载 u2 时,预期应该是 User2 对象和相应的 Company(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;
}
检索用户的方法:
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;
}
使用 SDN 4(里程碑版)。
有什么建议么?谢谢是提前。