2015-12-04 20 views
0

grails可以讓許多關係成爲孤立的域類指令嗎? 即當我刪除相關的一個關係時,many上的相應列被設置爲NULL。Grails如何允許多對一的孤兒

的一個

class TrackingNumber{ 
     static hasMany=[records:AttendanceRecords] 

} 

許多

class AttendanceRecord{ 
    static belongsTo=[site:Site, number:TrackingNumber] 

    static constraints={ 
      number(nullable:true) 
    } 
} 

這似乎刪除TrackingNumber情況下嘗試刪除所有的考勤記錄爲好,這是不希望。我寧願不必remove()控制器中的每個關聯。

回答

1

它似乎正在刪除TrackingNumber實例試圖刪除所有 考勤記錄,這是不受歡迎的。

belongsTo正在導致刪除級聯。

取而代之的是...

class AttendanceRecord{ 
    static belongsTo=[site:Site, number:TrackingNumber] 

    static constraints={ 
     number(nullable:true) 
    } 
} 

你可以這樣做......

class AttendanceRecord{ 
    static belongsTo=[site:Site] 
} 
+0

在級聯更多信息可在http://grails.github.io/grails-發現doc/3.0.9/guide/GORM.html#cascades –

+0

那麼我正確解釋文檔是爲了回答「否」的問題嗎?似乎你可以指定級聯整個delte或完全忽略關係,但我沒有看到有關將關係設置爲null的明確文檔。 – user2782001

+0

進行了您所建議的更改。這是一旦我發現一些徘徊MYSQL外鍵約束的票... – user2782001