2013-02-20 41 views
0

我在使用正常工作的grails中獲得一對多關係時遇到了一些問題。 我有一個人實例,這個人與其他人有關係。這種關係是在關係對象中定義的。 相關代碼如下。一對多關係無法按預期方式工作

class Person { 
    static hasMany = [relationships:Relationship] 
    String name 

} 

class Relationship { 
    Person relationShipTo 

    // Enum containing married, living together, parent etc. 
    RelationshipType typeOfRelationship 
} 

現在我想的是一個一對多參照該關係被保留,但會發生什麼Grails是,它似乎認爲relationShipTo實例闖民宅回到那個與別人這種關係的人而不是另一個人。 因此,一個人有一個關係的參考,並且這種關係有一種類型和對你與之有關係的人的參考。 我無法爲此更改域模型。有什麼方法可以完成我想要的嗎?

如果我爲關係使用生成的視圖和控制器並嘗試與其引用的類型和人物建立關係,那麼只有該類型被保留並且該人員被忽略,那麼目前發生了什麼。當我然後嘗試將其添加到人員編輯或創建頁面中的人員時,我添加的關係的所有relationShipTo屬性都與該人員的ID一起保存。

希望我寫的是可以理解的。

回答

0

終於搞定了。

必須向個人 和靜態belongsTo = [belongsTo:Person]添加靜態mappedBy = [relationship:'belongsTo']。

不完全是我怎麼想它,但它的工作原理,是一個確定的妥協

+0

能否請您加入到這個回答與你所做的更改代碼? :) – lucke84 2013-02-20 14:44:17

相關問題