2012-06-21 41 views

回答

1

目標有belongsTo條款是有從一個類的雙向訪問到另一個。見Documentation of belongsTo

你可以省略老師的第二個聲明(你註釋掉了)。

因此,它應該是這樣的:

class Teacher { 
    String name 
    String department 

    Set<Address> adresses = new HashSet<Address>() // here you could set a specific list/set data holder 
    static hasMany = [adresses:Address] 
    } 

    class Address { 
    String line1 
    String line2 

    static belongsTo = [teacher: Teacher] 

    static constraints = { 
    } 
} 

這裏有一個一對多的關聯,請其中兩個類都互相訪問。如果刪除belongsTo子句,則無法從地址對象訪問教師對象。這也反映在數據庫中。

+0

如果它的一對一關聯 – Hussy

+0

那麼它簡單[hasOne](http://grails.org/doc/latest/ref/Domain%20Classes/hasOne.html) – matcauthon

+0

我不認爲目標是使關係成爲雙向的 - 我們不能有沒有歸屬的雙向關係!如果我聲明瞭Address in Address類型的變量並且根本不使用belongsTo,該怎麼辦? –

1

屬於關聯的目標是賺不到的雙向關係 - 我們的目標是到指定的關聯方採取所有權和定義級聯的行爲,保存和刪除操作

閱讀本documentation它解釋每一件事你需要知道belongsTo。