2

私の構造は次のとおりです。

会社 -> ユーザーのセットを持つ -> 各ユーザーはポリシーのセットを持つ -> 各ポリシーは会社用です。

サンプル グラフ構造:

       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 (マイルストーン バージョン) を使用します。

助言がありますか?よろしくお願いします。

4

1 に答える 1