2009-03-17 8 views
7

sıradan bire çok "bir" Esas sahibi -yan olan eşleştirilmesi. Neden böyle bir haritalama için belowsTo-mapping'i kullanmalı? BelwsTo belirterek bazı yan etkisi eksik miyim? Başka bir deyişleGrails/gorm: 1'de belongsTo anlamı N ilişkiler olarak

: Gorm bir belongsTo-eşleme belirterek vs bunu belirtme etkileri nelerdir? belongsTo Belirleme

cevap

19

belongsTo belirtiniz, istediğiniz referential action türüne bağlıdır.

Eğer Grails Sil üzerinde yapmak istiyorsanız

CASCADE referans eylem, daha sonra belongsTo belirtmek DO. Eğer Grails Sil günü yapmak referans eylemi SINIRLAMADIĞI istiyorsanız, o zaman belongsTo belirtmek YAPMAYIN.

örn.

// "belongsTo" makes sense for me here. 
class Country { 
    String name 
    static hasMany = [states:State] 
} 

class State { 
    String name; 
    // I want all states to be deleted when a country is deleted. 
    static belongsTo = Country 
} 

// Another example, belongsTo doesn't make sense here 
class Team { 
    String name 
    static hasMany = [players:Player] 
} 

class Player { 
    String name 
    // I want that a team should not be allowed to be deleted if it has any players, so no "belongsTo" here. 
} 

Bu yardımcı olur umarım.

+0

i belongsTo ilgili bir soru sorabilir miyim? ne ben Oyuncu belongsTo Ekibi söyledi ama ben Takım hasMany Player ifade olmasaydı. Ekip silinmişse Oyuncu ile ne olur, bunlar da silinecek mi? – nightingale2k1

+0

@ nightingale2k1 - Team-Player'ı bu şekilde eşleştirmediyseniz, iki takım arasında herhangi bir ilişki olmayacağını düşünürsek, o zaman ilgili takım silinirse bir oyuncu –

+0

çok iyi açıklanmış, teşekkür ederim – add9

2

, şeffaf kaskad güncellemeler için Grails verir kazandırır ve nesnenin çocuklarına siler. Belgesiz Olmadan, bir ana kaydı silmeye çalışırsanız, sahip olduğu herhangi bir ayrıntı varsa, yabancı anahtar ihlaliyle sonuçlanırsınız.