2014-12-02 64 views
1

猜測我有一個名爲Many的類。還有其他兩個類One1One2具有的Many集合:不止一對多的關係到一個類

類One1:

public class One1 { 
    // ... 
    @ForeignCollectionField(eager = false) 
    private ForeignCollection<Many> events; 
} 

類One2:

public class One2 { 
    // ... 
    @ForeignCollectionField(eager = false) 
    private ForeignCollection<Many> events; 
} 

Many實體具有在同一時間只有一個關係。我的問題是:我應該如何管理Many方面的這種關係?

編輯:

enter image description here

+0

「許多實體有一次只有一個關係」。這是否意味着「許多」可能與「One1」或「One2」有關係?而在同一時間從來沒有? – gio 2014-12-18 12:17:41

+0

是的。許多方面的P_ID擁有ONE1或ONE2的ID – 2014-12-18 23:25:12

回答

0

我的想法是未來。 Many類有2 foreign字段並通過setter控制它們的填充。 One1One2使用foreignFieldName屬性來指不同的字段在Many。見實施波紋管:

許多

public class Many { 

    @DatabaseField(foreign = true) 
    private One1 mOne1; 
    @DatabaseField(foreign = true) 
    private One2 mOne2; 

    public void setOne1(One1 one1) { 
     mOne1 = one1; 
     mOne2 = null; 
    } 

    public void setOne2(One2 one2) { 
     mOne2 = one2; 
     mOne1 = null; 
    } 
} 

One1

public class One1 { 
    @ForeignCollectionField(eager = false, foreignFieldName = "mOne1") 
    private ForeignCollection<Many> mEvents; 

    public ForeignCollection<Many> getEvents() { 
     return mEvents; 
    } 
} 

One2

public class One2 { 

    @ForeignCollectionField(eager = false, foreignFieldName = "mOne2") 
    private ForeignCollection<Many> mEvents; 


    public ForeignCollection<Many> getEvents() { 
     return mEvents; 
    } 


}