私の構造は次のとおりです。
会社 -> ユーザーのセットを持つ -> 各ユーザーはポリシーのセットを持つ -> 各ポリシーは会社用です。
サンプル グラフ構造:
u1 <- c1 -> u2
p1 -> c1
u1 -> p1
会社 (c1) には 2 人のユーザー (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 (マイルストーン バージョン) を使用します。
助言がありますか?よろしくお願いします。